ExpertiDict

TypeScript · Essencial · Inglês · Técnico

narrowing

/ˈnæɹoʊɪŋ/substantivo

Refinamento do tipo de uma variável dentro de um trecho de código, a partir de verificações como typeof, instanceof, igualdade ou truthiness que o compilador reconhece.

Onde usar

É o que torna as uniões utilizáveis: depois de if (typeof x === 'string'), x passa a ser string naquele bloco. Em code review aparece como 'faça o narrowing antes de acessar'.

Em código

function mostrar(v: string | number | null) {
  if (v === null) return 'vazio';
  if (typeof v === 'string') return v.trim();
  return v.toFixed(2); // aqui v: number
}

Exemplos

You need to do narrowing before calling toFixed.

Você precisa fazer o narrowing antes de chamar toFixed.

After the null check, narrowing makes it a plain string.

Depois da checagem de null, o narrowing transforma em string simples.

Cuidado

Não confunda com type assertion: o narrowing é provado pelo fluxo do código, enquanto o as apenas afirma ao compilador algo que ele não verificou.

Sinônimos

estreitamento de tipos, refinamento de tipos

Antônimos

widening

Veja também

Todos os termos de TypeScript