Avatar ·

O que é null/nil no TypeScript e como trabalhar com isso?

Olá a todos! Comecei a estudar TypeScript e me deparei com confusão no entendimento de null e undefined. Em JavaScript, eu estava acostumado que null é um 'nada' explicitamente definido, e undefined é um valor não inicializado. Mas no TypeScript, foi adicionado também o tipo nil? Ou é a mesma coisa?

Problema: no meu projeto, há uma função que retorna dados de um banco de dados. Se o registro não for encontrado, quero retornar null, mas o TypeScript reclama que a função pode retornar undefined. Tentei usar o modo estrito (strictNullChecks: true) e especificar explicitamente o tipo de retorno como string | null, mas ainda recebo erros ao tentar acessar o resultado sem verificação.

Exemplo de código:

function findUser(id: number): string | null {
  const user = database.get(id);
  if (!user) return null;
  return user.name;
}

const userName = findUser(123);
console.log(userNam