【发布时间】:2017-01-16 09:32:37
【问题描述】:
我想象了这段代码
let x: (a: { b: number }) => void = (a: { b: number, c: string }) => { alert(a.c) };
x({ b: 123 });
应该会产生错误,因为 lambda 函数需要 a 参数上的附加属性,因此签名不应该兼容。但是在最新的打字稿游乐场尝试这个不会产生任何错误!这是为什么呢?
【问题讨论】:
-
严格来说,就结构类型而言,实际函数确实匹配 x 的类型。
标签: javascript typescript types