Saltar al contenido
webtype.orgwebtype.orgTS1109

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS1109

    Se esperaba una expresión

    Expression expected.

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

    El analizador llegó a una posición donde solo puede aparecer un valor y encontró algo que no puede iniciarlo — normalmente una línea dejada a medias.

    Reproducción

    const ready = true
    const hasQuota = false
    
    const canSend = ready &&

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

    Por qué lo dice el compilador

    Aquí habla el analizador, no el verificador de tipos. `&&` es un operador binario, así que la gramática exige otra expresión después, y en su lugar el archivo termina. El mensaje dice tan poco porque el compilador no ha llegado lo bastante lejos para saber qué querías — todavía no se ha considerado ningún tipo, y ninguno lo será hasta que el archivo se analice.

    Arreglos

    1. 01
      const ready = true
      const hasQuota = false
      
      const canSend = ready && hasQuota

      Termina la expresión. La posición que señala es el final del problema, no el principio: lee el token anterior.

    2. 02
      const ready = true
      
      const canSend = ready
      // TODO: && hasQuota, once quotas ship

      O aparca la mitad sin terminar en un comentario. El código que no se analiza silencia todos los demás diagnósticos del archivo, así que un marcador honesto vale más que una línea rota.

    Conclusión

    TS1109 nunca trata de tipos. Mira el token anterior a la posición que señala, y espera una errata más que un malentendido.

    Errores