ExpertiDict

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

análise de fluxo de controle

/aˈnalizi dʒi ˈfluksu dʒi kõˈtɾoli/substantivo feminino

Mecanismo do compilador que acompanha ifs, returns, atribuições e loops para calcular o tipo de cada variável em cada ponto do código. É a base do narrowing.

Onde usar

Explica por que o tipo de uma variável muda ao longo da função e por que callbacks podem perder o estreitamento de variáveis let. Entender isso evita casts desnecessários.

Em código

let v: string | number = 'a';
v.toUpperCase(); // v: string (atribuição)
v = 5;
v.toFixed();     // v: number
function f(x: string | null) {
  if (!x) return;
  x.trim();        // x: string
}

Exemplos

Por causa da análise de fluxo de controle, o tipo muda depois do return antecipado.

A análise de fluxo de controle perde o estreitamento dentro do callback quando a variável é let.

Cuidado

Ela não atravessa funções: dentro de um callback, se a variável puder ser reatribuída, o compilador não garante o estreitamento feito fora.

Sinônimos

control flow analysis

Veja também

Todos os termos de TypeScript