TypeScript · Intermediário · Inglês · Técnico
type predicate
Tipo de retorno especial no formato parametro is Tipo, que declara que a função devolve true apenas quando o argumento é daquele tipo, ensinando o compilador a estreitar.
Onde usar
Usado em filtros como lista.filter(ehString) para que o array resultante saia com o tipo certo. O compilador não confere se o corpo da função realmente cumpre o predicado.
Em código
function ehNum(v: unknown): v is number {
return typeof v === 'number';
}
const mix: (string | number)[] = [1, 'a', 2];
const nums = mix.filter(ehNum); // number[]Exemplos
Add a type predicate so filter returns number[].
Adicione um type predicate para o filter devolver number[].
The predicate is wrong, it returns true for strings too.
O predicado está errado, ele retorna true para strings também.
Cuidado
O retorno continua sendo boolean em runtime; o is só existe na checagem de tipos e some na compilação.
Sinônimos
predicado de tipo, user-defined type guard