ExpertiDict

TypeScript · Avançado · Inglês · Técnico

inferred type predicates

/ɪnˈfɝd taɪp ˈpɹɛdɪkəts/substantivo

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.

Veja também

Todos os termos de TypeScript