有没有办法只为一个对象的某些属性指定类型,而不是全部?例如,如果我有一些对象,如
const user_account = {id: 37593, created: "23/04/2020", last_active: "23/04/2020"};
而我只想说明 id
属于 number
而其他一切都保持原样 any
,有什么方法可以做到这一点?谢谢,有什么办法可以做到这一点吗?
你可以使用 串号 来表示所有的属性都符合一个特定的值类型;在你的例子中。any
. 在索引签名之外添加到对象中的任何命名属性仍然必须符合该类型,但你可以使它们更加具体。 因为 number
是比较具体的 any
你可以用以下方式表示你的类型 { [k: string]: any; id: number }
.
所以...
const settings: { id: number, [k: string]: any } =
{id: 37593, created: "23/04/2020", last_active: "23/04/2020"};
应该适合您,这取决于您的用例。 请注意,这样的注解将拓宽您所使用的 settings
到注释类型,所以编译器不会记住任何没有在该类型中指定的内容。
settings.id; // known to be number
settings.created; // only known as any, not string
settings.randomPropName; // also known as any
好的,希望能帮到你,祝你好运!