TypeScript · Avançado · Inglês · Técnico
inferred type predicates
Recurso do TS 5.5 em que o compilador deduz sozinho o predicado de tipo de uma função que apenas retorna uma checagem, sem precisar escrever x is T.
Onde usar
Faz arr.filter((x) => x !== undefined) devolver um array sem undefined, algo que antes exigia um type guard manual. Remove um dos casts mais comuns em code review.
Em código
const xs = [1, undefined, 3];
const ys = xs.filter((x) => x !== undefined);
// TS 5.5+: ys é number[]
// antes: (number | undefined)[]Exemplos
Since 5.5 filter infers the type predicate for you.
Desde o 5.5 o filter infere o type predicate para você.
We can delete the manual type guard now.
Agora podemos apagar o type guard manual.
Cuidado
A inferência exige um único return de expressão e vale nos dois sentidos; checagens como !!x não inferem, porque o false não prova que o valor é de outro tipo.