Lingua-e
← Errores
JavaScript

Qué significa TS18048: Posiblemente undefined y cómo solucionarlo

Referencia del error

TS18048: Posiblemente undefined

Lenguaje

JavaScript

Severidad

Media

Cuá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.

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

JavaScript

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