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.
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ómo solucionarlo
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.
Código corregido
function getCity(user: User): string | undefined {
return user.address?.city;
}Errores relacionados
¿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