Typescript 如何在类型定义上部分使用计算属性名

Typescript 如何在类型定义上部分使用计算属性名,typescript,typescript-typings,Typescript,Typescript Typings,我需要为接收道具名称(应该是字段)和任何其他道具的React组件定义类型 所以我试过这样的方法 type Fields = 'address' | 'recipientName' | 'recipientPhone'; type Props = { name: Fields [key in string]: any // error here }; 但它不起作用。我收到这个错误: 类型文字中的计算属性名称必须引用其类型为文字类型或“唯一符号”类型的表达式 如何创建此类型?您使用的是语

我需要为接收道具
名称
(应该是
字段
)和任何其他道具的React组件定义类型

所以我试过这样的方法

type Fields = 'address' | 'recipientName' | 'recipientPhone';

type Props = {
  name: Fields
  [key in string]: any // error here
};
但它不起作用。我收到这个错误:

类型文字中的计算属性名称必须引用其类型为文字类型或“唯一符号”类型的表达式

如何创建此类型?

您使用的是语法,而不是正常的字典语法。试试这个:

type字段='address'|'recipientName'|'recipientPhone';
类型道具={
名称:字段
[键:字符串]:任意//都很好
};
这可能就是你要找的。但是,如果出于某种原因确实希望使用映射类型,加上单独的键,则需要定义两种类型并将它们相交,如下所示:

type字段='address'|'recipientName'|'recipientPhone';
类型道具={
名称:字段
} & {
[输入字符串]:任意//都很好
};

只有当
输入字符串
任何
变得更复杂时,您才需要它。

[输入字符串]
更改为
[输入字符串]