打字稿:如何为对象类型的键值对定义接口

Typescript: How do I define an interface for an object type's key value pair

我有一个名为 externalObject 的对象,它有多个 key:value 对。

我还有一个打字稿接口,定义如下:

interface TestObject{
   externalObject?: {}
}

我的问题是如何进一步将 externalObject 的键的类型设置为字符串,并将在 externalObject 内部传递的值设置为字符串或数字?

注意:我们并不总是知道 key:value 对。它们每次都不同。

您可以在接口上设置任意数量的 key/types,类似于分配对象的方式。如果您事先不知道 属性 名称,您可以使用动态密钥:

export interface ITestObject {
  externalObject: {
    [key: string]: string | number;
  };
}

或者,您可以将 属性 设置为 unknown 并将其转换为正确的类型。