【问题标题】:property map does not exist on type string | Array<string>字符串类型不存在属性映射 |数组<字符串>
【发布时间】:2022-09-26 12:02:50
【问题描述】:

这就是我在 interface 中定义默认值的方式,因为有时它是字符串,有时是数组,我正在做映射,当我确定它将是数组时。但是我得到了 ts 错误 2339。

interface ABC {
defaultValue?: string | ILabelValue[];
}
// below is my code
x.defaultValue.map(e=>e.value) // I am getting error map does not exist on type string | ILabelValue[]

    标签: arrays typescript compiler-errors type-safety


    【解决方案1】:

    似乎如果我们在代码中进行类型检查,那么打字稿就会停止抱怨,所以我摆脱了这样的错误。

    if(x.defaultValue instanceof Array){
      x.defaultValue.map(e=>e.value)
    }
    

    现在上面的代码没有打字稿编译错误。

    所以我们必须再做一次检查,但是我也想知道是否有办法告诉打字稿我知道我在做什么,而且我确信在这里,defaultValue 将始终是数组。

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 1970-01-01
      • 2019-05-11
      • 2021-11-15
      • 2019-08-25
      • 2020-12-16
      • 2019-09-23
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多