我有一个用签名索引定义的动态对象。通常,所有属性都应为string类型。但有一些例外。例如,width
应始终为number
类型。然而,当我将它添加到我的界面时,我得到了错误
error TS2411: Property 'width' of type 'number' is not assignable to string index type 'string'.
这将是我的界面:
interface DynamicStyleObject {
[ key : string ] : string;
width : number;
}
答案 0 :(得分:0)
如果有时您的属性可以是number
,则可以创建索引类型string | number
,因此它接受数字或字符串属性。
interface DynamicStyleObject {
[ key : string ] : string|number;
width : number;
}
参考:Discriminated unions, also known as tagged unions or algebraic data types pattern