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';
类型道具={
名称:字段
} & {
[输入字符串]:任意//都很好
};
只有当
输入字符串
或任何
变得更复杂时,您才需要它。将[输入字符串]
更改为[输入字符串]
?