"skipLibCheck"

Pomija sprawdzanie błędów w plikach deklaracji .d.ts, co przyspiesza kompilację.

Na tej stronie

Przykład

#
JSON
{
  "compilerOptions": {
    "strict": true,
    "skipLibCheck": true
  }
}

Definicja i zastosowanie

#

Opcja skipLibCheck wyłącza szukanie błędów wewnątrz wszystkich plików deklaracji .d.ts: tych z node_modules i twoich własnych. Kompilator nadal czyta z nich typy i według nich sprawdza twój kod, ale nie weryfikuje samych deklaracji.

Główne powody włączenia to szybsza kompilacja i uniknięcie błędów, na które nie masz wpływu, np. dwóch paczek @types deklarujących tę samą zmienną globalną albo typów biblioteki napisanych dla innej wersji TypeScriptu.

Ceną jest mniejsza kontrola: literówka we własnym pliku .d.ts przejdzie niezauważona, a typ, którego kompilator nie rozpozna, zachowa się jak any. Mimo to skipLibCheck: true to bardzo popularne ustawienie, obecne m.in. w pliku tworzonym przez tsc --init.

Składnia

#
Składnia
"skipLibCheck": true

Więcej przykładów

#
Błąd we własnej deklaracji
TypeScript
// src/types/legacy.d.ts
declare function formatPrice(value: number): Strin
// Bez skipLibCheck: Cannot find name 'Strin'. Did you mean 'String'?
// Ze skipLibCheck: brak błędu

// src/app.ts
const label = formatPrice(49)
label.toFixedd(2)
// też bez błędu, bo nieznany typ Strin działa jak any

Dobre praktyki

#
  • W aplikacjach zostaw skipLibCheck włączone. Jeśli piszesz własne pliki .d.ts, sprawdzaj je od czasu do czasu kompilacją bez tej opcji, np. w CI.
  • Gdy po aktualizacji pakietów pojawiają się błędy w plikach z node_modules, skipLibCheck je ukryje. Warto jednak sprawdzić, czy w projekcie nie ma dwóch różnych wersji tej samej paczki @types.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.