Como corrigir o erro de TypeError: Cannot read property 'X' of undefined ao manipular objetos?

Esse erro ocorre quando tentamos acessar uma propriedade de um objeto que não foi corretamente inicializado, ou é undefined.

O erro TypeError: Cannot read property 'X' of undefined ocorre quando você tenta acessar uma propriedade de um objeto que está undefined. Isso pode acontecer se você estiver tentando acessar uma propriedade sem verificar se o objeto foi inicializado corretamente.

Exemplo de erro:

let obj;
console.log(obj.name); // TypeError: Cannot read property 'name' of undefined

Aqui, a variável obj não foi inicializada, e ao tentar acessar a propriedade name, o JavaScript lança um erro.

Exemplo corrigido:

let obj = { name: 'John' };
console.log(obj.name); // John

Neste exemplo, obj é corretamente inicializado com um valor, e a propriedade name pode ser acessada sem problemas.

Como corrigir?

Sempre que for acessar uma propriedade de um objeto, verifique primeiro se o objeto está definido. Uma prática recomendada é usar uma verificação antes de acessar a propriedade ou utilizar o encadeamento opcional (?.).

let obj;
console.log(obj?.name); // undefined, mas sem erro

O encadeamento opcional impede que o erro seja lançado caso o objeto seja undefined.

Essa é uma falha comum em JavaScript ao trabalhar com objetos e variáveis dinâmicas. Quando você recebe dados de uma API, por exemplo, sempre use verificações para garantir que os objetos e suas propriedades estejam definidos antes de acessá-los.

Algumas aplicações:

  • Verifique se o objeto não é undefined ou null antes de acessar suas propriedades.
  • Use encadeamento opcional para acessar propriedades de objetos que podem não estar definidos.
  • Implemente uma validação robusta ao trabalhar com dados externos ou variáveis dinâmicas.

Dicas para quem está começando

  • Antes de acessar uma propriedade, sempre verifique se o objeto foi inicializado corretamente.
  • Utilize o encadeamento opcional para tornar seu código mais seguro ao lidar com valores indefinidos.
  • Se você estiver manipulando dados externos, sempre faça validações para garantir que os objetos existem antes de usá-los.
Foto de João Gutierrez
Contribuições de
João Gutierrez

Desenvolvedor e arquiteto de software com ampla atuação em PHP, Node.js e Python.

Mais sobre o autor
Compartilhe este tutorial: Como corrigir o erro de TypeError: Cannot read property 'X' of undefined ao manipular objetos?

Compartilhe este tutorial

Continue aprendendo:

O que fazer quando aparece o erro TypeError: Object.getOwnPropertyDescriptor não funciona?

Esse erro ocorre quando você tenta usar `Object.getOwnPropertyDescriptor` de maneira inadequada, geralmente passando um argumento inválido.

Tutorial anterior

O que significa o erro TypeError: Cannot assign to property of a function?

Esse erro ocorre quando você tenta atribuir um valor a uma propriedade de uma função, o que não é permitido em JavaScript.

Próximo tutorial