【问题标题】:Typescript - Argument of type "X" is not assignable to parameter of type "Y"打字稿 - “X”类型的参数不能分配给“Y”类型的参数
【发布时间】:2021-04-09 10:14:12
【问题描述】:

如何分配正确的类型来消除错误??? 我尝试了不同的解决方案,但总是得到不同类型的错误。这个是最容易理解的。

这是打字稿错误消息:

错误 TS2345: '([currency, data]: [string, { available: string;}]) => void' 类型的参数不可分配给 '(value: [string, {avaiable: string ; }],索引:数字,数组:[字符串,{ 可用:字符串;}][]) => void'。 参数 '__0' 和 'value' 的类型不兼容。 键入'[字符串,{ 可用:字符串; }]' 不可分配给类型 '[string, { available: string; }]'。 '{avaiable: string; 类型中缺少属性'available' }' 但在类型 '{ available: string; 中是必需的}'。

interface Balances {
  [key: string]: { avaiable: string };
}

binance.balance(async (error: any, balances: Balances) => {
        Object.entries(balances).map(
          ([currency, data]: [string, { available: string }]) => {
            console.log(data.available);
            console.log(currency)
          }
        );
      }

【问题讨论】:

    标签: typescript types


    【解决方案1】:

    您可以安全地删除 map 上推断的冗余类型。

    const yourFunc = async (error: any, balances: Balances) => {
        return Object.entries(balances).map(
          ([currency, data]) => {
            console.log(data.avaiable);
            console.log(currency)
          }
        );
      }
    

    此外,您在接口声明中的avaiable 中有错字。

    【讨论】:

      猜你喜欢
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 2021-12-06
      • 2019-06-16
      • 2019-01-27
      • 2016-04-16
      • 2018-02-09
      相关资源
      最近更新 更多