Przejdź do treści

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    TS2578

    Błąd, którego oczekiwałeś, zniknął

    Unused '@ts-expect-error' directive.

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

    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.

    Odtworzenie

    // @ts-expect-error
    const fine: number = 1

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

    Dlaczego kompilator tak mówi

    To cała różnica między `@ts-expect-error` a `@ts-ignore`. Oba tłumią następny wiersz, ale tylko jedno skarży się, gdy tłumienie przestaje być potrzebne. Baza kodu pełna `@ts-ignore` gromadzi ciszę, do której nikt nie wraca; baza używająca `@ts-expect-error` dowiaduje się w chwili, gdy obejście przeżyło błąd, który obchodziło.

    Naprawy

    1. 01
      const fine: number = 1

      Usuń dyrektywę. Problem, który zakrywała, został naprawiony — zwykle przez aktualizację zależności albo przez czyjeś ulepszenie typów wyżej.

    2. 02
      // @ts-expect-error
      const broken: number = 'not a number'

      Albo, jeśli dyrektywa przy edycji przywędrowała nie tam, wróć ją nad wiersz, który naprawdę zawodzi.

    Wniosek

    Wszędzie wybieraj `@ts-expect-error` zamiast `@ts-ignore`. To jedyne tłumienie, które wygasa samo.

    Błędy