【问题标题】:Typescript filtering a mixed array to one type打字稿将混合数组过滤为一种类型
【发布时间】:2019-07-26 10:20:29
【问题描述】:

我有一个包含两种可能类型的数组,我试图过滤掉一种类型,但在下面的 forEach 中,它仍然说 obj 可以是任何一种类型。

我在这里唯一需要过滤的是一个常量字符串(它是一个外部 API)。

type t1 = { key: 'a' }
type t2 = { key: 'b' }

const types: (t1 | t2)[] = [];

types.filter(t => t.key === 'a').forEach(obj => { })

【问题讨论】:

标签: typescript


【解决方案1】:

回答我自己的问题。使过滤函数返回类型=t is t1:

types.filter((t): t is t1 => t.key === 'a').forEach(obj => { })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 2022-01-04
    • 2020-05-02
    • 2022-09-24
    • 1970-01-01
    • 2018-09-23
    • 2021-04-18
    • 1970-01-01
    相关资源
    最近更新 更多