Ce face skipLibCheck
Fișierele .d.ts din node_modules sunt verificate și ele implicit. Pachete diferite pot declara același lucru în feluri incompatibile, iar versiuni vechi de @types pot avea greșeli care nu țin de codul tău. Cu skipLibCheck, tsc nu mai raportează erorile din interiorul fișierelor .d.ts. Tipurile lor sunt folosite în continuare pentru a-ți verifica propriul cod.
Este pornită în aproape toate proiectele (tsc --init o scrie) și scurtează vizibil compilarea. Riscul: o declarație greșită dintr-un pachet rămâne neobservată. skipDefaultLibCheck este varianta mai îngustă: sare doar peste fișierele .d.ts marcate ca biblioteci implicite (/// <reference no-default-lib="true"/>, adică lib.*.d.ts ale lui TypeScript). Ambele sunt implicit false.
Parametri
| Parametru | Descriere |
|---|---|
skipLibCheck: true |
Nu se verifică niciun fișier .d.ts. |
skipDefaultLibCheck: true |
Nu se verifică bibliotecile standard (lib.*.d.ts). |
Exemple
Exemplul 1: Declarații cu greșeli
tipuri/vechi.d.ts are două greșeli. Cu --skipLibCheck nu mai sunt raportate. --skipDefaultLibCheck nu le ascunde, pentru că fișierul nu este o bibliotecă standard.
// tsconfig.json
{
"compilerOptions": {
"module": "nodenext",
"target": "es2022",
"noEmit": true
}
}
// tipuri/vechi.d.ts
declare const OPTIUNI: Map<string>;
interface Window { titlu: number }
interface Window { titlu: string }
// index.ts
console.log("Bună");
Rezultat (tsc 5.9)
$ npx tsc
tipuri/vechi.d.ts(1,24): error TS2314: Generic type 'Map<K, V>' requires 2 type argument(s).
tipuri/vechi.d.ts(3,20): error TS2717: Subsequent property declarations must have the same type. Property 'titlu' must be of type 'number', but here has type 'string'.
$ npx tsc --skipLibCheck
$ npx tsc --skipDefaultLibCheck
tipuri/vechi.d.ts(1,24): error TS2314: Generic type 'Map<K, V>' requires 2 type argument(s).
tipuri/vechi.d.ts(3,20): error TS2717: Subsequent property declarations must have the same type. Property 'titlu' must be of type 'number', but here has type 'string'.
Greșeli frecvente
- Să crezi că
skipLibCheckascunde erorile din codul tău care folosește un pachet. Le ascunde doar pe cele din interiorul fișierelor.d.ts. - Să scrii fișiere
.d.tsproprii cuskipLibCheckpornit și să nu observi greșelile din ele. Verifică-le din când în când cu--skipLibCheck false.
Comenzi înrudite
types: Alege exact ce pachete de tipuri globale (din node_modules/@types) se încarcă automat; [] nu încarcă niciunul.typeRoots: Alege directoarele din care tsc încarcă automat pachetele de tipuri globale (implicit node_modules/@types).lib: Alege ce declarații de tipuri pentru mediul de rulare sunt incluse: versiunea JavaScript (es2022) și API-urile (dom, webworker).diagnostics: Afișează după compilare statistici: câte fișiere, rânduri și tipuri, memoria folosită și timpul fiecărei etape.