【发布时间】:2020-09-28 08:48:19
【问题描述】:
我有以下定义:
function foo(arg: number[] | number) {
if (Array.isArray(arg)) {
return [1]
}
return 0
}
我希望 typescript 能够自动找出返回类型是什么。由于类型保护isArray(),它知道 arg 是否是一个数组,并且可以将返回类型显示为number[]。但是,使用foo(...) 会显示其返回值为number[] | 0,即使在传递数组时也是如此。
foo([]).push() // error because push doesnt exist on type 0
这是设计限制、错误、尚未实现还是其他问题?
【问题讨论】:
标签: typescript