这行代码似乎很简单:
const dates: Date[] = [1, new Date()].filter(num => num instanceof Date)
但是,它失败并显示以下错误:
Type '(number|Date)[]' is not assignable to type 'Date[]'
为什么TypeScript不能推断出日期中唯一的项来自Date类?
答案 0 :(得分:2)
不幸的是,TypeScript无法完全正确地推断出这一点,但是如果您在过滤器函数中使用类型谓词,它将起作用:
const dates: Date[] = [1, new Date()].filter((num): num is Date => num instanceof Date)