Qué significa TS18048: Posiblemente undefined y cómo solucionarlo
Referencia del error
TS18048: Posiblemente undefined
Lenguaje
Severidad
MediaCuándo ocurre
El error TS18048 de TypeScript se reporta cuando se accede a un valor que podría ser undefined sin una verificación de null.
Posibles soluciones
Usa optional chaining (?.) para acceso seguro a propiedades. Agrega una verificación if explícita antes de usar el valor. Devuelve T | undefined desde tu función y deja que quien la llame maneje el caso undefined. Usa nullish coalescing (??) para proporcionar un valor predeterminado.
Errores relacionados
Más detalles
El error TS18048 de TypeScript se reporta cuando se accede a un valor que podría ser undefined sin una verificación de null. Es similar al error 'object is possibly null' pero específicamente para propiedades opcionales y valores tipados como T | undefined.
Por qué ocurre
- •Acceder a una propiedad en un campo opcional sin una guardia.
- •Usar el resultado de Array.find() que puede devolver undefined.
- •El tipo de retorno de una función incluye undefined pero quien la llama no lo verifica.
- •Map.get() devuelve T | undefined y el valor se usa directamente.
Posibles soluciones
Usa optional chaining (?.) para acceso seguro a propiedades. Agrega una verificación if explícita antes de usar el valor. Devuelve T | undefined desde tu función y deja que quien la llame maneje el caso undefined. Usa nullish coalescing (??) para proporcionar un valor predeterminado.
Ejemplos
Código que causa el error
interface User {
name: string;
address?: {
city: string;
};
}
function getCity(user: User): string {
return user.address.city; // address may be undefined
}Error en la terminal
error TS18048: 'user.address' is possibly 'undefined'.
Código corregido
function getCity(user: User): string | undefined {
return user.address?.city;
}Practica en inglés
¿Cómo le explicarías un TS18048: Possibly Undefined 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