【问题标题】:TypeScript Error Argument of type '{}' is not assignable to parameter of type 'Variable Y'“{}”类型的 TypeScript 错误参数不可分配给“变量 Y”类型的参数
【发布时间】:2021-08-19 03:09:51
【问题描述】:

sampleDataPayload = {
   accountInformation: {
      userId: '123';
      groupId: '123';
   }
}

type PayloadType = {
   accountInformation: {
      userId: String;
      groupId: String;
   }
}

export const functionApiName = async(payload: PayloadType) => {
    //...calling Api logic
}

大家好,

我是打字稿的初学者。运行构建时收到以下错误消息。谁能指导我如何使用上面提供的示例有效负载数据声明有效负载的类型?

TS2345:“{}”类型的参数不可分配给“PayloadType”类型的参数。 “{}”类型中缺少属性“accountInformation”,但在“PayloadType”类型中是必需的。

感谢您的宝贵时间和帮助!

【问题讨论】:

    标签: javascript reactjs typescript


    【解决方案1】:

    这似乎奏效了。 可能是您传递给函数的参数是非有效负载对象,例如空 {}s。

    这至少在我的测试用例中得到解决,因为我将一个示例数据对象作为参数传入,并且sampleDataPayload 确实满足成为Payload 对象的条件。

    sampleData 也存储为 var/object 而不是类,因此如果这是原因,则变量之间的 ,var 的声明将是必需的

    var sampleDataPayload = {
       accountInformation: {
          userId: '123',
          groupId: '123'
       }
    }
    
    type PayloadType = {
       accountInformation: {
          userId: String;
          groupId: String;
       }
    }
    const functionApiName = async(payload: PayloadType) => {
        console.log(payload)
    }
    functionApiName(sampleDataPayload);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2020-03-26
      • 1970-01-01
      • 2019-01-03
      • 2017-02-07
      • 2018-02-09
      • 2023-01-18
      相关资源
      最近更新 更多