Saltar al contenido
TS2532

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS2532

    El objeto puede ser undefined

    Object is possibly 'undefined'.

    Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.

    Se lee una propiedad directamente de una expresión cuyo resultado puede ser `undefined`.

    Reproducción

    function find(): { name: string } | undefined {
      return undefined
    }
    
    find().name

    La compilación afirma que esto emite exactamente este código.

    Por qué lo dice el compilador

    La firma informa honestamente de que puede no haber resultado. Acceder enseguida a una propiedad ignora esa rama y no hay una variable estable que el análisis de flujo pueda estrechar antes.

    Arreglos

    1. 01
      function find(): { name: string } | undefined {
        return undefined
      }
      
      const result = find()
      if (result) {
        result.name
      }

      Guarda el resultado, compruébalo y usa la variable estrechada.

    2. 02
      function find(): { name: string } | undefined {
        return undefined
      }
      
      const name = find()?.name ?? 'anonymous'

      Usa encadenamiento opcional cuando la ausencia deba conducir a un valor alternativo.

    Conclusión

    Trata `undefined` como una rama que manejar, no como un aviso que silenciar.

    Adónde ir después

    Errores