Avatar ·

如何在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 = {}`声明对象——这有效,但我失去了类型化的所有优势。 - 创建一个带有可选字段的接口——但我事先不知道具体会添加哪些字段。 在实际