TS1109
Oczekiwano wyrażenia
Expression expected.Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.
Parser doszedł do miejsca, w którym może stać tylko wartość, i znalazł coś, co nie może jej rozpocząć — zwykle linię zostawioną w połowie.
Odtworzenie
const ready = true const hasQuota = false const canSend = ready &&
Build potwierdza, że to emituje dokładnie ten kod.
Dlaczego kompilator tak mówi
To mówi parser, nie system typów. `&&` jest operatorem dwuargumentowym, więc gramatyka wymaga po nim kolejnego wyrażenia, a zamiast tego plik się kończy. Komunikat mówi tak mało, bo kompilator nie zaszedł dość daleko, by wiedzieć, o co ci chodziło — żaden typ nie został jeszcze rozważony i nie zostanie, dopóki plik się nie sparsuje.
Naprawy
- 01
const ready = true const hasQuota = false const canSend = ready && hasQuota
Dokończ wyrażenie. Zgłoszona pozycja to koniec problemu, nie początek: przeczytaj token przed nią.
- 02
const ready = true const canSend = ready // TODO: && hasQuota, once quotas ship
Albo odłóż niedokończoną połowę do komentarza. Kod, który się nie parsuje, tłumi wszystkie inne diagnostyki w pliku, więc uczciwy zastępnik jest wart więcej niż zepsuta linia.
Wniosek
TS1109 nigdy nie dotyczy typów. Spójrz na token przed zgłoszoną pozycją i spodziewaj się literówki, a nie nieporozumienia.

