Object vs object vs {}
// 所有原始类型
type Primitive = string | boolean | number | bigint | symbol | null | undefined
// 所有非原始类型
type NoPrimitive = object;使用object类型进行类型声明
// node_modules/typescript/lib/lib.es5.d.ts
interface ObjectConstructor {
create(o: object | null): any;
setPrototypeOf(o: any, proto: object | null): any;
// ...
}const proto = {};
Object.create(proto); // OK
Object.create(null); // OK
Object.create(undefined); // Error
Object.create(1337); // Error
Object.create(true); // Error
Object.create("oops"); // Error