我注意到 TypeScript 支持使用以下类型:
{}
(在规范中称为空对象类型)对象
据我所知,它们似乎是等价的并且可以互换。它们之间有什么区别?
最佳答案
在 TypeScript 的上下文中,没有实际差异,但存在语义差异。 Object
的所有成员都隐含地存在于所有 对象中。
{}
表示没有自己的成员。 {} 仍将具有 Object
的所有成员。所以它们在 TypeScript 中是可以互换的。
// Extend ALL objects
interface Object{
baz:number;
}
var foo:{} = {};
var bar:Object = {};
foo.baz = 123;
bar.baz = 123;
就我个人而言,我从来没有声明一个变量是其中之一。也许您应该使用 any
,它与一切 兼容。
关于types - 空对象类型和Object有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21396195/