【问题标题】:How to cast string type to one of object types in Typescript?如何将字符串类型转换为 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 是 字符串

【问题讨论】:

    标签: typescript typescript-typings react-typescript


    【解决方案1】:

    你可以投射钥匙

    address[k.addressKey as keyof Address_findUserAddress]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2018-06-23
      • 1970-01-01
      相关资源
      最近更新 更多