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

