代码之家  ›  专栏  ›  技术社区  ›  daniel

类型脚本错误:“未定义”类型不能分配给“字符串”类型

  •  0
  • daniel  · 技术社区  · 2 年前

    我有以下函数

    this._list.addToFavs((<HTMLElement>event.currentTarget).dataset.code)

    其中addToFavs的定义为 addtoFavs(currencyCode: string)

    我将错误“Type'undefined'不可分配给Type'string'”作为数据集。理论上,代码可能是“未定义的”。我知道我可以通过添加!最后,但我觉得有点乱。我试着加上

    if ((<HTMLElement>event.currentTarget).dataset.code == undefined) {
      throw Error('Code not set to details fav button')
    }
    

    但这并不能阻止错误的发生。除了将currencyCode定义为字符串|未定义之外,还有其他解决方法吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   random    2 年前

    在调用该函数之前,可以检查是否存在特定的 data 属性

    const code = event.currentTarget?.dataset?.code;
    
    if(code) {
        this._list.addToFavs(code);
    }