【发布时间】:2023-02-26 05:06:59
【问题描述】:
我有一个具有某些属性的对象,我希望能够将其设置为 string 或 number。
const identityConfig = {
[configID]: {
metadata: {
config: 'STATIC',
value: null,
},
},
};
我希望这个 metadata.value 属性是数字或字符串,但默认值为 null。
我在另一个对象中有这个identityConfig对象,ACCOUNT
export const ACCOUNT = {
name: '',
identity: identityConfig
setIdentityValue: (metadata: IdentityMetadata) => {
identityConfig[configID].metadata = metadata
}
};
这是参数类型:
type IdentityMetadata = { config: string; value: string | number };
所以我将这个 setIdentityValue 方法公开并使用它来传递 metadata 属性,它有一个 value 属性,可以是字符串或数字。
问题是,这是我得到的错误
属性“值”的类型不兼容。输入'字符串| number' 不可分配给类型 'null'。
我怎样才能将值设置为这些类型中的任何一种,同时还给它一个默认值 null?我试图将
IdentityMetadata中的value类型更改为string | number | null,但这也不起作用。
【问题讨论】:
标签: typescript