有一个问题让我很困惑。 网站上的教程(http://www.typescriptlang.org)介绍了如下语法:
https://i.stack.imgur.com/3t4ui.png
这意味着{name:“Alice”}是{name:“Alice”的子类型,location:“seattle”}(显然,有多余的属性),但是打字稿文件告诉我们如下: " S是类型T的子类型,如果S没有关于T&#34的多余属性,则T是S的超类型;
答案 0 :(得分:0)
我相信它告诉你的是对象y必须与对象x的类型相同或至少是子类型。 x是y的一部分,但不是相反。这是使用类而不是对象的差异的更具体示例,
class x {
constructor(public name: string){}
}
class y extends x {
constructor(public name: string, public location: string){
super(name);
}
}
let myX: x = y; // OK
let myY: y = x; // Error: "Type 'typeof x' is not assignable to type 'y'. Property 'location' is missing in type 'typeof x'. let myY: y"
//在typescript操场上PLUG这段代码,看看它是否有用......:)