阅读时TypeScript handbook ,我遇到了以下示例:
interface Shape {
color: string;
}
interface Square extends Shape {
sideLength: number;
}
var square = <Square>{};
square.color = "blue";
square.sideLength = 10;
问题是 - <Square>{}
到底是什么? ?对我来说似乎是一种奇怪的语法。从 Java/C# 的 Angular 来看,它就像一个匿名对象的泛型。它到底是什么,这种创作的局限性是什么?
最佳答案
这是“类型转换”。基本上将以下内容({}
,一个没有字段的对象字面量)解释为 Square
。因此,由于 square
的使用,TypeScript 编译器会将其推断为 Square
类型,并且 Intellisense 将显示正确的成员。
当然这不是真正的“转换”,因为我们知道类型只是 TypeScript 中的一种幻觉。这一切都是为了编译器。
关于javascript - typescript 对象奇怪的类型语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35212649/