|
|
1
0
我震惊地发现,这通过了打字检查! 在闲逛了一会儿之后,我对为什么会发生这种情况有了强烈的预感,但我还没有找到任何官方词汇来支持它。 因此,这不是一个答案,而是一个太长而无法发表评论的对话起点。 就这么说吧,把接下来发生的事放在心上。 我怀疑TypeScript的“归属”/“注释”机制允许基于子类型进行一些调整。 具体来说,当我们写:
只要
此外,由于TypeScript的子类型化概念是“结构性的”,以下内容也是完全可以接受的:
考虑到这个[理论],你的例子被检查者接受,因为
总之, 如果 这是正确的,我认为没有办法诱使类型检查器拒绝您的示例。 编辑 当前位置这不是完整的故事。 正如@apflieger所指出的,这个理论无法解释原因
被拒绝。 似乎传播在这里至关重要。 可能是那种
被推断为
|
|
|
Kareem Adel · 创建函数类型(TypeScript接口) 4 年前 |
|
|
donzul · 如何键入接收动态参数并执行递归的函数 8 年前 |
|
|
Ruben · 具有变量键的嵌套TypeScript对象 8 年前 |
|
|
Tom Hudson · TypeScript:从装饰器推断返回类型? 8 年前 |