TypeScript · Avançado · Inglês · Técnico
Awaited
Utility type que desembrulha o tipo resolvido de uma Promise, recursivamente, tratando também objetos thenable. Representa o que o await produziria para aquele tipo.
Onde usar
Usado para obter o resultado de uma função assíncrona: Awaited<ReturnType<typeof buscar>>. Foi adicionado no TS 4.5, entre outros motivos, para tipar bem o Promise.all.
Em código
async function buscar() {
return { ok: true };
}
type R = Awaited<ReturnType<typeof buscar>>;
// R = { ok: boolean }
type S = Awaited<Promise<Promise<string>>>;
// S = stringExemplos
Use Awaited to get the resolved type of the async function.
Use Awaited para pegar o tipo resolvido da função assíncrona.
Awaited unwraps nested promises all the way down.
Awaited desembrulha promises aninhadas até o fim.
Cuidado
Não é o mesmo que T extends Promise<infer U> ? U : T, que ignora Promises aninhadas e thenables; o Awaited resolve todos os níveis.