TypeScript 中 Object、{} 和 object 的区别
我的新闻通讯中的最新更新。
在 TypeScript 中,当我们想要定义一个对象类型时,有几个简洁的选项,例如“Object”、“{}”和“object”。它们之间有什么区别?
对象(大写)
Object(大写)描述所有 JavaScript 对象共有的属性。它定义在TypeScript 库自带的lib.es5.d.ts文件中。
如您所见,它包含一些常见属性toString()
,如valueOf()
、等等。
因为它只强调 JavaScript 对象共有的属性。所以你可以将诸如string
、boolean
、number
、bigint
之类的可装箱对象赋值symbol
给它,但反过来不行。
{}
{}
描述一个没有自己成员的对象,这意味着如果你尝试访问其属性成员,TypeScript 将会报错:
从上面的代码示例中,我们可以看到{}
和Object
(大写)具有相同的特性。也就是说,它只能访问那些通用的属性(即使 JavaScript 代码逻辑正确),所有可装箱对象都可以赋值给它,等等。
这是因为该{}
类型可以通过原型链访问那些公共属性,并且它没有自身属性。因此它的行为与(大写)类型相同Object
。但它们代表不同的概念。
对象(小写)
object(小写)表示任何非原始类型,在代码中表示如下:
type PrimitiveType =
| undefined
| null
| string
| number
| boolean
| bigint
| symbol;
type NonPrimitiveType = object;
这意味着所有原始类型都不能分配给它,反之亦然。
如果您觉得我的内容有用,请考虑订阅。我每天都会发送最新的网站开发动态。感谢您的支持!
文章来源:https://dev.to/zacharylee/the-differences- Between-object-and-object-in-typescript-f6f