如果打字稿中的对象具有相同的字段,或者类B
的所有字段也都在类A
中,则类B
也是类{{1 }}根据打字稿类型检查器。请参见以下示例:
A
在此示例中,class A {
foo: string;
bar: string;
}
class B {
foo: string;
}
function convertAtoB(input: A): B {
return input;
}
应该将类型A的输入转换为类型B的实例。但是,当前实现不会产生任何错误或警告,因为类convertAtoB()
具有属性A
与foo
相同。现在,返回的值包含字段B
和foo
,这是不希望的。
是否有任何编译器标志,TSlint附加组件或其他技巧可能会警告这种情况或引发(编译时)错误。