Przejdź do treści
TS2300

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    TS2300

    Zduplikowany identyfikator

    Duplicate identifier 'Result'.

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

    Ta sama niescalalna nazwa typu została zadeklarowana dwa razy w jednym zakresie.

    Odtworzenie

    type Result = { ok: true }
    
    type Result = { ok: false }

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

    Dlaczego kompilator tak mówi

    Aliasy typów nazywają jedną definicję i nie podlegają scalaniu deklaracji. Dwa aliasy o tej samej nazwie czynią każde użycie niejednoznacznym, więc duplikat jest odrzucany przy obu deklaracjach.

    Naprawy

    1. 01
      type Result = { ok: true } | { ok: false }

      Połącz alternatywy w jednym aliasie, gdy reprezentują gałęzie tego samego pojęcia.

    2. 02
      type Success = { ok: true }
      type Failure = { ok: false }
      
      type Result = Success | Failure

      Nadaj różnym pojęciom różne nazwy, a następnie składaj je tam, gdzie potrzeba.

    Wniosek

    Aliasy typów się nie scalają. Zmień nazwę, usuń albo świadomie złóż zduplikowane definicje.

    Dokąd dalej

    Błędy