【发布时间】:2020-06-17 12:13:39
【问题描述】:
我的印象是这些函数虽然以不同的方式编写,但具有完全相同的类型签名; 即
type Test = {
a: number
}
type Fu = (a: number) => Test
var foo1: (a: number) => Test = a => ({ a }) // aka var foo1: Fu = a => ({ a })
var foo2 = (a: number): Test => ({ a })
最近我发现其中一个允许传入额外的字段
var foo1: (a: number) => Test = a => ({ a, b:1}) // NO error!
var foo2 = (a: number): Test => ({ a, b:2 }) // 'b' does not exist
这是为什么?这是 TS 的错误还是限制?
有时我无法内联输入函数(即泛型、覆盖、回调)是否有另一种方法来定义它们,使其始终像 foo2 一样?
【问题讨论】: