Qué significa Property does not exist on type y cómo solucionarlo
Referencia del error
Property does not exist on type
Lenguaje
Severidad
MediaCuándo ocurre
Este error de compilación de TypeScript (TS2339) se reporta cuando intentas acceder a una propiedad que no está declarada en el tipo de la variable.
Posibles soluciones
Agrega la propiedad faltante a la interfaz o definición de tipo. Si la propiedad es opcional, márcala con un signo de interrogación (email?: string). Usa aserciones de tipo (as MiTipo) con moderación y solo cuando estés seguro de la forma en tiempo de ejecución. Mantén las definiciones de tipo sincronizadas con las respuestas de la API usando herramientas de generación de código.
Errores relacionados
Más detalles
Este error de compilación de TypeScript (TS2339) se reporta cuando intentas acceder a una propiedad que no está declarada en el tipo de la variable. TypeScript garantiza que cada acceso a propiedad sea conocido en tiempo de compilación, por lo que acceder a una propiedad no declarada es un error aunque pueda existir en tiempo de ejecución.
Por qué ocurre
- •Acceder a una propiedad que nunca fue agregada a la interfaz o definición de tipo.
- •Un error tipográfico en el nombre de la propiedad que no coincide con ningún campo declarado.
- •Acceder a una propiedad en el resultado de una llamada a una API tipada como tipo genérico o base que no incluye esa propiedad.
- •Una librería fue actualizada y una propiedad fue renombrada o eliminada en la nueva versión.
Posibles soluciones
Agrega la propiedad faltante a la interfaz o definición de tipo. Si la propiedad es opcional, márcala con un signo de interrogación (email?: string). Usa aserciones de tipo (as MiTipo) con moderación y solo cuando estés seguro de la forma en tiempo de ejecución. Mantén las definiciones de tipo sincronizadas con las respuestas de la API usando herramientas de generación de código.
Ejemplos
Código que causa el error
interface User {
id: number;
name: string;
}
const user: User = { id: 1, name: "Alice" };
console.log(user.email);Error en la terminal
error TS2339: Property 'email' does not exist on type 'User'.
Código corregido
interface User {
id: number;
name: string;
email?: string; // add the property (optional)
}
const user: User = { id: 1, name: "Alice", email: "alice@example.com" };
console.log(user.email);Practica en inglés
¿Cómo le explicarías un Property does not exist on type a un compañero dev? Elige la frase correcta:
"I hit an error...
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis