我希望以下代码无法编译,因为B不应是array.push的有效类型。我想念什么?
class A {};
class B {};
const arr: A[] = [];
arr.push(new B());
答案 0 :(得分:6)
TypeScript使用结构兼容性来确定类型兼容性。这些类在结构上兼容,因为它们具有相同的属性(空对象)。
请参阅:https://www.typescriptlang.org/docs/handbook/type-compatibility.html