null / undefined null e undefined

Última atualização: 2026-10-22

null / undefined null e undefined

null significa "vazio intencional"; undefined significa "não atribuído / ausente". Com strictNullChecks, são tipos independentes e precisam ser tratados antes do uso normal.

GrupoTipos Básicos
TipoTipo
Modo strictNecessário

ℹ️ Info O editor transpila TypeScript para JavaScript e o executa (sem verificação de tipos); veja a Saída de cada exemplo para o resultado da verificação.

📝 Sintaxe

let nickname: string | null = null;
if (nickname !== null) {
  nickname.toUpperCase(); // só pode usar após excluir null
}
let maybe = list.find(x => x.ok); // undefined significa que não foi encontrado

⚙️ Parâmetros

a?.bFaz curto-circuito para undefined quando o lado esquerdo é null/undefined, sem lançar erro
a ?? bPega o lado direito quando o esquerdo é null/undefined; 0 e "" não são pulados

Retorno:Nenhum valor de retorno — null/undefined são anotações de tipo básicas e não produzem código em tempo de execução.

▶ Exemplo

Edite o código abaixo e clique em Testar para ver o resultado transpilado:

Saída:

Ada guest
0

(Saída de execução após a transpilação; com strictNullChecks ativado, chamar missing.length diretamente é um erro de compilação)

💡 Observações

⚠️ Atenção Com strictNullChecks desativado, null/undefined podem ser atribuídos a qualquer tipo e a segurança contra ponteiros nulos fica por conta da sorte. Sempre ative strict em projetos novos.
💡 Dica ?. e ?? são o par de ouro: user?.address?.city ?? "unknown" lê e define um padrão em uma linha.
ℹ️ Info ?? só cai para o lado direito quando a esquerda é null/undefined, preservando 0, false e "" — a diferença crucial em relação a ||.
Mais casos em breve.

📚 Tutoriais relacionados

❓ Perguntas frequentes

P ?? vs ||?
R || trata todo valor falsy (0, "", false) como vazio; ?? apenas null/undefined. Padrões quase sempre devem usar ??, para 0 e "" não serem sobrescritos.
P Como null e undefined devem ser usados semanticamente?
R Convenção: undefined = ainda sem valor (argumento/propriedade ausente); null = esvaziado deliberadamente. Seja consistente dentro de uma API.
P Que tipo o optional chaining produz?
R T | undefined: se qualquer elo da cadeia pode estar vazio, o resultado carrega undefined — use ?? depois ou faça estreitamento.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%