TypeScript · Essencial · Inglês · Técnico
Promise
Tipo genérico Promise<T> que descreve um valor que chegará depois. Toda função async tem retorno Promise<T>, e await desembrulha o T.
Onde usar
Em code review: 'anota como Promise<Usuario>, e não como Usuario'. O erro mais comum é declarar o retorno de uma função async sem o Promise, o que o compilador recusa.
Em código
async function buscar(id: number) {
return { id, nome: 'Ana' };
}
// tipo: Promise<{ id: number; nome: string }>
async function nome(): Promise<string> {
const u = await buscar(1);
return u.nome;
}Exemplos
The function returns a Promise of User, not a User.
A função retorna uma Promise de User, não um User.
You don't write Promise in the return of an async body, just the value.
Você não escreve Promise no return do corpo async, só o valor.
Cuidado
Dentro de uma função async você retorna o valor T, não uma Promise<T>: o TypeScript embrulha o resultado sozinho, e await devolve T.