【问题标题】:Object is of type 'unknown' - forEach and map对象的类型为“未知” - forEach 和 map
【发布时间】:2021-02-08 11:06:17
【问题描述】:

我正在使用forEachmap 对对象进行循环。 但是,我在用于循环的变量上遇到类型错误。 错误是Object is of type 'unknown'.

这发生在val.nameval.title

使用 .forEach

    Object.entries(data).forEach(
      ([, val]) => {
        newObject[val.name] = { // Object is of type 'unknown'
          title: val.title // Object is of type 'unknown'
        }}
      )

使用 .map

Object.entries(data).map(
  ([, val]) => {
    newObject[val.name] = { // Object is of type 'unknown'
      title: val.title // Object is of type 'unknown'
    }}
  )

我尝试在变量val 上指定一个类型,例如:

([, val: any]) => {..my code..}

但它不接受该位置的类型

【问题讨论】:

    标签: typescript


    【解决方案1】:

    一个答案是回到 JavaScript 中迭代对象属性的“经典”方式,在 Object.entries() 存在之前,就像这样:

    const obj = {
      a: 1,
      b: 2,
      c: 3,
    }
    for (const key of Object.keys(obj)) {
      const value = obj[k]
      // Do something with 'value'...
    }
    

    这是可行的,因为value 的类型是any,而不是使用Object.entries() 带来的限制性更强的unknown。这在 TypeScript v4 中已经过测试和工作。

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 2021-07-13
      • 2021-06-19
      • 1970-01-01
      • 2020-08-23
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      相关资源
      最近更新 更多