Saltar al contenido
TS18047

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS18047

    El valor puede ser null

    'value' is possibly 'null'.

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

    Se usa un valor anulable como si la rama `null` ya hubiera sido descartada.

    Reproducción

    function upper(value: string | null) {
      return value.toUpperCase()
    }

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

    Por qué lo dice el compilador

    Con comprobación estricta de nulos, `string | null` son dos posibilidades reales. Los métodos de `string` solo son seguros cuando el flujo de control demuestra que el valor está en la rama de cadena.

    Arreglos

    1. 01
      function upper(value: string | null) {
        if (value === null) return ''
        return value.toUpperCase()
      }

      Protege el caso nulo y elige el comportamiento que requiera tu dominio.

    2. 02
      function upper(value: string | null) {
        return value?.toUpperCase() ?? ''
      }

      Usa encadenamiento opcional con una alternativa explícita para una transformación compacta.

    Conclusión

    Estrecha los valores anulables donde los usas; una aserción no nula solo traslada el riesgo a ejecución.

    Adónde ir después

    Errores