【问题标题】:TypeScript Expected 1 arguments, but got 2TypeScript 需要 1 个参数,但得到了 2 个
【发布时间】:2022-01-18 09:57:47
【问题描述】:

我的函数 createUser() 有什么问题? 为什么我不能在 Smoke.ts 中放入参数?

登录.ts:

interface User {
  url: string,
  email: string,
}

class Test{ 
async createUser(user: User) {
    await Page.setUrl(user.url);
    await Page.setEmail(user.email);


   
  }
}

Smoke.ts

test("Smoke Test", async (t) => {
  console.log("Starting test");  
  await Login.createUser(
  "google.com","joe"
  );

出现错误:预期有 1 个参数,但得到了 2 个。

【问题讨论】:

  • createUser() 期望 User 对象作为参数。但是你传递了两个字符串。你想要的是Login.createUser({ url: "google.com", email: "joe" });

标签: javascript typescript types


【解决方案1】:

方法 createUser 需要一个具有以下形状的对象: { 网址:字符串, 电子邮件:字符串, }

您将一个字符串作为第一个参数传递,另一个字符串作为第二个参数传递。

你应该像这样传递一个对象:

createUser({ 
   url: 'google.com', 
   email: 'joe' 
})

顺便说一句,您为什么在这里使用“界面”而不是“类型”? type 更常用于定义对象形状,interface 常用于描述行为

【讨论】:

    【解决方案2】:

    您的 createUser 函数仅使用一个参数声明,但是当您调用此方法时,您传递了两个参数。 要解决此问题,您需要传递用户对象

    【讨论】:

      猜你喜欢
      • 2018-07-13
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 2020-10-23
      • 2020-06-18
      • 2022-01-24
      • 2018-05-19
      • 1970-01-01
      相关资源
      最近更新 更多