如何将字符串类型转换为 Typescript 中的一种对象类型?
Posted
技术标签:
【中文标题】如何将字符串类型转换为 Typescript 中的一种对象类型?【英文标题】:How to cast string type to one of object types in Typescript? 【发布时间】:2021-11-26 14:11:07 【问题描述】:我有如下界面说:
export interface Address_findUserAddress
addressCity: string | null;
addressCountry: string | null;
addressFirstLine: string | null;
还有以下功能:
const onAddressSelected = (address: Address_findUserAddress) =>
const mappedAddress = addressAnswerKeys.reduce(
(acc, k) => ( ...acc, [k.answerKey]: address[k.addressKey] AS_ONE_Of_Address_FindUserAddress ),
as Record<string, string>
);
...
address[k.addressKey] - 这段代码说:元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“地址查找用户地址”。 在“Address_findUserAddress”类型上找不到带有“string”类型参数的索引签名。
如何将 address[k.addressKey] AS_ONE_Of_Address_FindUserAddress 转换为地址类型的键之一? k.addressKey 是 字符串
【问题讨论】:
【参考方案1】:你可以投射钥匙
address[k.addressKey as keyof Address_findUserAddress]
【讨论】:
以上是关于如何将字符串类型转换为 Typescript 中的一种对象类型?的主要内容,如果未能解决你的问题,请参考以下文章
Typescript 映射类型,其中仅保留可为空的属性并转换为字符串类型