我注意到TypeScript支持使用以下类型:
{}
(在规范中称为空对象类型)Object
就我所知,它们似乎都是等同的,可以互换的。它们之间有什么区别?
答案 0 :(得分:3)
在TypeScript的上下文中,没有实际差异,但存在语义差异。 Object
的所有成员都隐式出现在所有对象上。
{}
表示没有自己成员的东西。 {}仍会拥有Object
的所有成员。因此它们在TypeScript中可以互换。
// Extend ALL objects
interface Object{
baz:number;
}
var foo:{} = {};
var bar:Object = {};
foo.baz = 123;
bar.baz = 123;
我个人没有声明变量是其中之一。也许您应该使用与{em>所有内容兼容的any
。
答案 1 :(得分:0)
我一直都认为Object
是指JavaScript对象类型。通常用作{}
或有时new Object
。
我相信它们是等价的。
答案 2 :(得分:-1)
作为类型注释,{}
和Object
都指向相同的类型,即空对象类型。但是,{}
也可以用作对象文字,相当于new Object
。