如何在TypeScript中动态向对象添加属性(无类型错误)
大家好!我最近开始学习TypeScript,遇到了一个让我非常困惑的问题。我需要创建对象,其属性在程序运行过程中动态添加。
举个例子:我从API接收JSON数据,但响应结构可能会变化。我想创建一个空对象,然后根据接收到的数据用属性填充它。在普通的JavaScript中,这很容易实现:
```typescript
const data = {};
data.name = "John"; // 有效
data.age = 30; // 有效
```
但当我尝试在TypeScript中做同样的事情时,编译器会报错:"Property 'name' does not exist on type '{}'"。TypeScript抱怨对象`data`的类型是`{}`,并且没有这些属性。
我尝试了不同的方法:
- 通过`const data: any = {}`声明对象——这有效,但我失去了类型化的所有优势。
- 创建一个带有可选字段的接口——但我事先不知道具体会添加哪些字段。
在实际