Przejdź do treści
webtype.orgwebtype.orgTS1109

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    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

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

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

    Błędy