TypeScript创建一个具有运行时已知属性的类

时间:2017-11-17 10:53:15

标签: typescript

我从REST服务获得以下响应:

[{
  "id": "1",
  "name": "Jon Doe"
  "paymentInformation": {
    "cc": {
      "type": "visa",
      "number": "123456789"
    },
    "btc": {
      "address": "123asdsa12d4as6d54sad23"
    },
    "bank-wire": {
      "bank-name": "Best Bank",
      "IBAN": "123456789987654321",
      "BIC": "47114711123",
      "Owner": "Jon Doe"
    }
  }
},{...}
]

每个对象都是客户。

我的主要问题是创建一个应该代表paymentInformation的类。 我会在运行时知道密钥(当我得到json响应时)。

如何在TypeScript中创建这样的类?

这就是我现在所拥有的:

export class Customer {
  constructor(
    public id: number, 
    public name: string, 
    public paymentInformation: PaymentInformation)   { }
}

1 个答案:

答案 0 :(得分:1)

如果您显示的数据是数据的正确形状,但实际密钥可能不同,那么您拥有的是:

  • 一个索引器,它返回另一个返回字符串的索引器。

在TypeScript中打开:

<h1>Title</h1>

这是一个非常广泛的类型,它只会检查:

  • 1级键是字符串
  • 1级值是索引器......匹配:
  • 2级键是字符串
  • 第2级值是字符串

例如:

interface PaymentInformation {
    [key: string]: { [key: string]: string };
}