TypeScript 类型检查未能发现错误的赋值
class BaseClass {}
var cls:BaseClass = 1234;
你可以在 TypeScript playground 上尝试这个:http://www.typescriptlang.org/Playground/
上面的代码非常简单,但 TypeScript 并没有发现错误。由于这个错误非常明显,这让我怀疑自己是否做错了什么。
答案#1
这不是一个错误,因为它不是一个失误。BaseClass 类型没有成员,所以在结构类型系统中,它是所有类型的超类型。如果你向它添加任何成员(这些成员也不是 Number 的成员),你将会得到一个错误:
class BaseClass {
x;
}
var cls:BaseClass = 1234; // Error
