TypeScript类型'object'vs Object接口,为什么没有'array'类型?

时间:2019-06-07 18:02:35

标签: javascript typescript

有人可以清楚地解释为什么TypeScript中有类型object,为什么要用它代替JavaScript Object接口呢?

类似地,为什么不使用array类型,而是使用JavaScript接口Array

在Internet上看到类似的示例,其中Array<Object>Array<object>处于相似的上下文会有些令人困惑。

1 个答案:

答案 0 :(得分:2)

object代表任何不是原始的东西;因此不是numberstringbooleansymbolnullundefined之外的任何事物。

Object表示所有对象共有的功能;诸如.toString()和.valueOf()之类的东西。但是要警告!由于装箱(装箱是将图元包裹在对象中的位置),因此图元也有效地具有这些属性,因此以下内容完全合法:

const a: Object = 5;
const b: Object = "hello";
const c: Object = true;

相反,以下所有都是错误:

const a: object = 5;
const b: object = "hello";
const c: object = true;

因此,Object几乎永远不是您要使用的,而应该使用object

另请参见Do's and Don'ts上的Typescript页面