Błędy
Jedna strona na diagnostykę. Każda niesie odtworzenie, które naprawdę emituje ten kod, i naprawy, które naprawdę się kompilują — jedno i drugie sprawdza build, nie my.
Każde odtworzenie i każda naprawa na tych stronach są kompilowane podczas budowania
- TS2304Nie znaleziono nazwy
Cannot find name 'Missing'.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.
- TS2322Nie da się przypisać
Type 'number' is not assignable to type 'string'.Najczęstszy błąd TypeScriptu. Wartość jednego typu trafiła tam, gdzie wymagany był inny, a te dwa nie są zgodne w tę stronę.
- TS2339Nie ma takiej właściwości
Property 'b' does not exist on type '{ a: number; }'.Sięgnąłeś po właściwość, której typ nie ma. Często typ jest dobry, a pisownia zła; czasem typ jest węższy, niż wartość naprawdę jest.
- TS2344Nie spełnia ograniczenia
Type 'number' does not satisfy the constraint 'string'.Argument typu został odrzucony w drzwiach. Generyk powiedział, co przyjmie, a to nie jest to.
- TS2345Zły typ argumentu
Argument of type 'number' is not assignable to parameter of type 'string'.Ta sama porażka przypisywalności co TS2322, tyle że w miejscu wywołania. Osobny kod, bo naprawa niemal zawsze leży gdzie indziej.
- TS2355Musi zwrócić wartość
A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.Sygnatura obiecuje, że coś wróci, a ciało nigdy tego nie dostarcza.
- TS2367Porównanie bez części wspólnej
This comparison appears to be unintentional because the types 'string' and 'number' have no overlap.Obie strony nigdy nie będą równe, więc porównanie zawsze jest fałszem i kompilator zakłada, że nie o to ci chodziło.
- TS2416Składowa nie zgadza się z bazą
Property 'm' in type 'K' is not assignable to the same property in base type 'I'.…Składowa istnieje, dlatego to nie TS2420 — ale jej typ nie jest zgodny z tym, który zadeklarowała baza.
- TS2420Klasa nie implementuje swojego interfejsu
Class 'L' incorrectly implements interface 'J'.…Klasa napisała `implements`, a potem tego nie zrobiła. Szczegół poniżej nazywa dokładnie, czego brakuje albo co się nie zgadza.
- TS2456Cykliczny alias typu
Type alias 'Loop' circularly references itself.Alias jest zdefiniowany przez samego siebie i nic pomiędzy, więc nie ma momentu, w którym cokolwiek znaczy.
- TS2493Poza końcem krotki
Tuple type 'Pair' of length '2' has no element at index '2'.Krotka wie dokładnie, jak jest długa, więc indeksowanie poza koniec jest błędem kompilacji, a nie `undefined`, o którym dowiesz się później.
- TS2536Nie może indeksować
Type 'K' cannot be used to index type 'T'.Zaindeksowałeś parametr typu innym parametrem typu, a kompilator nie ma powodu wierzyć, że taki klucz istnieje.
- TS2540Właściwość tylko do odczytu
Cannot assign to 'x' because it is a read-only property.Właściwość jest oznaczona jako `readonly`, co jest obietnicą na czas kompilacji, że nie zostanie nadpisana — i niczym więcej.
- TS2542Sygnatura indeksu tylko do odczytu
Index signature in type '{ readonly [k: string]: number; }' only permits reading.Obiekt przyjmuje dowolny klucz tekstowy i każdy z nich jest tylko do odczytu. To TS2540 zastosowane naraz do całej rodziny kluczy.
- TS2564Właściwość nigdy nie przypisana
Property 'x' has no initializer and is not definitely assigned in the constructor.Klasa deklaruje właściwość, której nigdy nie nadano wartości, więc każda instancja startowałaby z `undefined` w miejscu, o którym typ mówi, że zawsze jest liczbą.
- TS2578Błąd, którego oczekiwałeś, zniknął
Unused '@ts-expect-error' directive.Powiedziałeś kompilatorowi, że następny wiersz zawiedzie, a nie zawiódł. To dobra wiadomość zgłoszona jako błąd i dokładnie po to ta dyrektywa istnieje.
- TS2589Zbyt głęboka instancjacja
Type instantiation is excessively deep and possibly infinite.Typ rekurencyjny zaszedł dalej, niż kompilator jest gotów podążyć — zwykle około pięćdziesięciu poziomów, i niemal zawsze dlatego, że rekurencja liczy, zamiast się kurczyć.
- TS2741Brakuje wymaganej właściwości
Property 'b' is missing in type '{ a: number; }' but required in type 'Need'.Obiekt ma właściwy kształt na tyle, na ile sięga — tylko nie sięga dość daleko. Każda właściwość wymagana przez cel musi być obecna.
- TS2769Żadne przeciążenie nie pasuje
No overload matches this call.Funkcja ma kilka sygnatur, a argumenty nie pasują do żadnej. Kompilator raportuje wtedy każdą próbę i dlatego ten błąd jest tak długi.
- TS7053Niejawne any z indeksu tekstowego
Element implicitly has an 'any' type because expression of type 'string' can't be used to index typeZaindeksowałeś obiekt zwykłym `string`, a kompilator nie umie stwierdzić, którą właściwość masz na myśli — wynikiem byłoby `any`, a `strict` nie przepuści tego po cichu.
- TS18046To jest unknown
'value' is of type 'unknown'.`unknown` to typ, który odmawia użycia, dopóki nie udowodnisz, czym jest. Ta odmowa jest całą jego funkcją.
- TS18048Możliwe undefined
'maybe.a' is possibly 'undefined'.Opcjonalna właściwość została użyta bez sprawdzenia. Przy `strictNullChecks` „opcjonalna” znaczy, że nieobecność jest częścią typu i trzeba ją obsłużyć.