【问题标题】:Typescript pulling keys out of an object that is unknown?打字稿从未知对象中拉出钥匙?
【发布时间】:2022-07-28 00:38:19
【问题描述】:

我有一个unknown 类型的接口,它基本上是事物的映射。就我而言,我有一个 String key 和一个 String value

  export interface CoolInterface {
    field1: number
    field2: string
    field3?: unknown
  }

问题:

    const result: CoolInterface = getData(input)
    result.field3[0].map['uri'].includes('some-string'),

result.field3[0].map 之后的所有内容都会导致问题,我认为是因为地图类型是 unknown。假设我无法修改界面,我该如何做我想要实现的上述目标?

【问题讨论】:

  • 字段 3 是什么样的?您是要映射field3 的第一个数组还是map 是field3 中具有uri 属性的第一个对象的属性?

标签: typescript


【解决方案1】:

您可以将类型为 unknown 的属性转换为您期望的属性,这样您就可以让编译器知道它没问题。

const result: CoolInterface = { 
  field1: 3, 
  field2: "string", 
  field3: ["someuri", "some-string"] 
};

const unkownField = result.field3 as string[]; // cast as x type (for example string array)
console.log(unkownField.map(s => s.includes('some-string'))); // no error

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多