类型{},对象,对象打字稿之间的区别

时间:2019-10-25 11:09:50

标签: typescript

我不知道{}对象的用途。打字稿中的对象。

我将显示三个选项。请向我解释,他们可以得到x,y,z?。

const x: object | { x: number } = ?; // What can accept x and why ?
const y: Object | { y: number } = ?; // What can accept y and why ?
const z: {} | { z: number } = ?; // What can accept z and why ?

我是新来的,这对我来说很难理解。

1 个答案:

答案 0 :(得分:2)

documentation states

  

永远不要使用类型NumberStringBooleanSymbolObject。这些类型是指非原始的盒装对象,这些对象几乎从未在JavaScript代码中正确使用。

所以大写的Object并不是您经常使用的东西。

可以将类型为object的任何值分配给类型object的变量(例如,对象文字,数组,复杂类型的实例)。请参见typeof函数。

{}是一个没有任何属性但也没有显式类型的对象。您可以例如为此分配一个字符串,object则不是这种情况。


对于您的代码,您可以使用|将变量定义为并集类型,因此您始终可以分配左或右类型的值。请注意,此处始终允许使用其他属性。