ExpertiDict

TypeScript · Intermediário · Inglês · Técnico

type widening

/taɪp ˈwaɪdənɪŋ/substantivo

Processo em que o compilador generaliza um tipo literal para o tipo base mais amplo, como 'a' para string, quando o valor pode mudar depois.

Onde usar

Explica por que let modo = 'claro' vira string e então não serve para um parâmetro 'claro' | 'escuro'. Em PR, a correção costuma ser const, uma anotação ou as const.

Em código

const a = 'sim';           // tipo 'sim'
let b = 'sim';             // tipo string
const o = { modo: 'sim' }; // modo: string
const o2 = { modo: 'sim' } as const;
// o2.modo é 'sim' (readonly)

Exemplos

Type widening turned my literal into string.

O type widening transformou meu literal em string.

Use const to avoid type widening.

Use const para evitar o type widening.

Cuidado

Não é o mesmo que alargar com uma union: o widening acontece sozinho na inferência de let, propriedades de objeto e arrays, sem você pedir.

Sinônimos

alargamento de tipo

Antônimos

narrowing

Veja também

Todos os termos de TypeScript