TypeScript · Intermediário · Inglês · Técnico
NonNullable
Utility type que remove null e undefined de um tipo. Nas versões atuais equivale a T & {}, o que também afeta parâmetros de tipo genéricos ainda não resolvidos.
Onde usar
Usado para tipar valores depois de uma checagem de presença, como em NonNullable<string | null>, que vira string. Aparece em funções que garantem que o resultado existe.
Em código
type A = NonNullable<string | null>; // string
type B = NonNullable<1 | undefined>; // 1
function exige<T>(v: T): NonNullable<T> {
if (v == null) throw Error('ausente');
return v;
}Exemplos
Return a NonNullable so callers don't check for null.
Retorne um NonNullable para os chamadores não precisarem checar null.
NonNullable of string or null is just string.
NonNullable de string ou null é só string.
Cuidado
Só descreve o tipo e não remove nada em runtime; para tirar os nulos de um array é preciso um filter.