{}和Object之间有什么区别?

ben*_*liu 6 javascript flowtype

最近,我对{}和之间的区别感到困惑Object.有时,{}会解决我的问题,有时,它不能和我交换Object.我真的不知道为什么.

我做了一些测试,希望它可以给你一些提示.

const t: Array<{label: string}> = [{label:'1'}];
const arr: Array<{}> = t; //error
const arr2: Array<Object> = t; //pass
Run Code Online (Sandbox Code Playgroud)

Ayu*_*pta 2

{}是 的别名new Object()

所以你可以说Objectis aclass并且{}is aninstance属于该类。

你可以在这里看到:

console.log(JSON.stringify(new Object()) == JSON.stringify({}))

console.log({} instanceof Object)
Run Code Online (Sandbox Code Playgroud)