TypeScript instanceof保护失败

时间:2019-03-11 13:24:00

标签: typescript

这行代码似乎很简单:

const dates: Date[] = [1, new Date()].filter(num => num instanceof Date)

但是,它失败并显示以下错误:

Type '(number|Date)[]' is not assignable to type 'Date[]'

为什么TypeScript不能推断出日期中唯一的项来自Date类?

1 个答案:

答案 0 :(得分:2)

不幸的是,TypeScript无法完全正确地推断出这一点,但是如果您在过滤器函数中使用类型谓词,它将起作用:

const dates: Date[] = [1, new Date()].filter((num): num is Date => num instanceof Date)
相关问题