简体   繁体   中英

TypeScript Expected 1 arguments, but got 2

What's wrong with my function createUser()? Why I can't put params in Smoke.ts?

Login.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"
  );

An error appear: Expected 1 arguments, but got 2.

The method createUser is expecting an object with the following shape: { url: string, email: string, }

And you are passing a string as first parameter and another string as the second parameter.

you should be passing an abject like this:

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

BTW why are you using "interface" and not "type" here? type is more common for defining object shapes and interface is often used to describe behaviours

your createUser function was declared with only one parameter but when you call this method you passed two-parameter. to fix this you need to pass user object

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM