ExpertiDict

TypeScript · Essencial · Inglês · Técnico

property does not exist on type

/ˈpɹɑpɚti dʌz nɑt ɪɡˈzɪst ɑn taɪp/substantivo

Erro TS2339, em que o código acessa uma propriedade que o compilador não encontra no tipo da expressão. Surge por erro de digitação, união não estreitada ou tipo incompleto.

Onde usar

Costuma aparecer com uniões, quando a propriedade existe só em um membro, e com bibliotecas sem tipos. Primeiro confira se o tipo está certo, e só depois pense em narrowing ou declaração.

Em código

type A = { nome: string };
type B = { id: number };
function f(x: A | B) {
  // x.nome; // erro TS2339: não existe em B
  if ('nome' in x) return x.nome;
}

Exemplos

Property does not exist on type, you have to narrow the union first.

Property does not exist on type, você precisa estreitar a união antes.

That error means the interface is missing a field.

Esse erro significa que falta um campo na interface.

Cuidado

A saída fácil, converter para any, apaga a checagem; prefira estreitar o tipo, usar in ou corrigir a interface.

Sinônimos

TS2339

Veja também

Todos os termos de TypeScript