如何使用连字符添加属性到声明为any的Typescript对象

问题描述 投票:1回答:1

我有一个声明为任何类型的打字稿对象。现在我需要在这些对象的实例之后附加一个字段。我知道我可以做到

myObject.myProperty = 'true';

但不幸的是,我需要添加的属性包含一个连字符,所以这是不可能的。

我试过了:

myObject['my-property'] = 'true';

Object.defineProperty(body,'my-property','true');

但他们都失败了。有没有办法在打字稿上做这个(没有序列化到原始字符串或json)?

typescript
1个回答
0
投票

我建议使用地图类型。 &运营商

let fn = (anyItem: { myProperty: string } & { [key: string]: any }) => {
  anyItem.myProperty // string
  anyItem.otherProperty // any
}

{ [key: string]: any }意味着此类型的任何键都将返回any,但与{ myProperty: string }合并将在myProperty键上正常运行

Playground

© www.soinside.com 2019 - 2024. All rights reserved.