Przejdź do treści

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    TS2304

    Nie znaleziono nazwy

    Cannot find name 'Missing'.

    Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.

    Kompilator poszukał tej nazwy w każdym widocznym zakresie i nic nie znalazł. Zwykle literówka, niezaimportowany typ albo wartość użyta tam, gdzie należy się typ.

    Odtworzenie

    type A = Missing

    Build potwierdza, że to emituje dokładnie ten kod.

    Dlaczego kompilator tak mówi

    Typy i wartości mieszkają w osobnych przestrzeniach nazw, a ten błąd często jest szwem między nimi. `const` o nazwie `config` nie jest typem `config`, a prośba o jedno tam, gdzie istnieje drugie, daje dokładnie ten komunikat — dlatego naprawą bywa nie „zdefiniuj to”, lecz „poproś o jego typ”.

    Naprawy

    1. 01
      type Missing = string
      
      type A = Missing

      Zdefiniuj to, jeśli naprawdę jeszcze nie istnieje.

    2. 02
      const config = { retries: 3 }
      
      type A = typeof config

      Albo sięgnij między przestrzeniami nazw przez `typeof`. Nazwa istniała od początku — jako wartość — a `typeof` to sposób, by poprosić o typ takiej wartości.

    Wniosek

    Zanim zdefiniujesz brakującą nazwę, sprawdź, czy już nie istnieje po drugiej stronie podziału typ/wartość. `typeof` przechodzi go w jedną stronę, a `keyof` chodzi po tym, co tam znajdziesz.

    Dokąd dalej

    Błędy