我有一个声明为任何类型的打字稿对象。现在我需要在这些对象的实例之后附加一个字段。我知道我可以做到
myObject.myProperty = 'true';
但不幸的是,我需要添加的属性包含一个连字符,所以这是不可能的。
我试过了:
myObject['my-property'] = 'true';
和
Object.defineProperty(body,'my-property','true');
但他们都失败了。有没有办法在打字稿上做这个(没有序列化到原始字符串或json)?
我建议使用地图类型。 &
运营商
let fn = (anyItem: { myProperty: string } & { [key: string]: any }) => {
anyItem.myProperty // string
anyItem.otherProperty // any
}
{ [key: string]: any }
意味着此类型的任何键都将返回any
,但与{ myProperty: string }
合并将在myProperty
键上正常运行