Vyhledávání na webu

javascript - Jak rozložit proměnnou v Typescriptu s proměnnou stejného názvu z vnějšího rozsahu?


Chci použít název proměnné username a nevím, jak to udělat v následujícím kódu:

  myFunction = async (email: string, password?: string): Promise<boolean> => {
    let username
    if (password) {
      { username } = await this.getUsernameAndDate(email, password)
    } else {
      username = await this.getUsernameByEmail({ email })
    }
    return this.sendUsername({ username })
  }

Můj linter hlásí, že { username } není použit:

nepoužitý výraz, očekáváno přiřazení nebo volání funkce (no-unused-expression)tslint(1)

Existuje správný způsob, jak to udělat, pokud chci všude používat pouze username?

Odpověď č. 1

Musíte dát destrukturalizaci do závorek:

({ username } = await this.getUsernameAndDate(email, password));

To platí i pro JS. Pokud byste při destrukturalizaci deklarovali (pomocí let, const atd.), nemuseli byste používat závorky.

Více podrobností