如何键入“任何对象”类型?

yaq*_*awa 1 typescript

我知道我可以使用object关键字输入“对象” ,但是如何在不使用any关键字的情况下将其输入为“任何对象” ?(因为any将允许任何原始类型,如字符串或数字)。

let a:object;
a.foo // error: Property 'foo' does not exist on type 'object'.
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 6

您可以使用索引类型,例如{[key: string]: any}“属性名称为字符串的对象,其值为any”,或者{[key: string]: string | number}表示属性名称为字符串且值为字符串或数字。

但是,这确实删除了该对象的许多 TypeScript 功能,因为它无法告诉您是否正在使用不存在的属性......