为什么此TypeScript代码无法进行类型检查?

时间:2018-09-24 02:29:05

标签: typescript

2 个答案:

答案 0 :(得分:2)

Typescript支持结构化键入。在检查对象类型B是否为对象类型A的子类型时,B的多余属性无关紧要。为了捕获更多错误,Typescript在知道类型B来自对象文字的情况下有一种特殊情况。这些称为新鲜对象文字,并在here中进行了描述。理由是多余的财产通常是错字。但是,当类型B可以来自任何对象而不仅仅是对象文字时,通常的结构性输入规则都适用,因此没有警告。

答案 1 :(得分:1)

错误消息说明了一切。

  1. 第一种情况失败是因为“ [o] bject文字只能指定已知属性” ,并且c不是a的已知属性

  2. 第二种情况成功,因为b不是对象文字,因此上述规则不适用。