TypeScript · Avançado · Português · Técnico
análise de fluxo de controle
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