Skip to content

tsconfig-alternativer forklart

tsconfig-alternativene som betyr noe, gruppert etter jobb: stram inn typesjekkingen, sett språkmål og moduler, styr hva som skrives ut, kartlegg importstier, strukturer bygging av flere prosjekter, og finjuster de gjenværende kontrollene.

En tsconfig forteller kompilatoren hvilke filer den skal ta med og hvor streng den skal være. To alternativer gjør mesteparten av jobben: target setter nivået for JavaScript-generering, og strict slår på sikkerhetskontrollene som én pakke. Alternativene nedenfor er de som endrer atferd; flagg som står på som standard, er merket. Avled konfigurasjonen din fra en basis, og overstyr bare det som avviker.

Referansetabell · 55 oppføringer
55 of 55 rows
Strenghet
Hovedbryter: slår på strictNullChecks, noImplicitAny og flere andre på én gang.
Feil på parametere og variabler der typen ikke kan utledes (ville ellers bli any).
null og undefined kan ikke lenger tilordnes til enhver type; du melder deg på eksplisitt.
Sjekker funksjonsparametere kontravariant; fanger usunne parametertyper i tilbakekall.
Typesjekker bind, call og apply mot funksjonens deklarerte parametere.
Feil når en klasseegenskap ikke har startverdi og ikke tilordnes i konstruktøren.
En valgfri egenskap { p?: T } godtar ikke lenger en eksplisitt tilordning av undefined.
Krever nøkkelordet override på medlemmer som skygger et medlem i basisklassen.
Feil på deklarerte lokale variabler som aldri leses.
Feil på deklarerte funksjonsparametere som aldri leses.
Feil på uttrykkssetninger uten effekt.
Punktumtilgang er forbudt for nøkler fra en indekssignatur; bruk klammer (obj["key"]).
Feil når én kodebane returnerer en verdi, men en annen ikke gjør det.
Feil når en switch-case faller videre til den neste uten break.
Språk og moduler
Nivået for JavaScript-generering (f.eks. ES2022); nyere mål gir mindre downleveling.
De innebygde API-ene som er tilgjengelige (f.eks. ES2022, DOM, DOM.Iterable).
Modulsystemet i den genererte koden (f.eks. ESNext, CommonJS, NodeNext).
Bruker Nodes ekte regler: hver fil velger CJS eller ESM fra nærmeste package.json, og relative importer trenger filendelser.
Hvordan importstier løses (f.eks. bundler, node, nodenext).
Hvordan en fil regnes som en modul: auto (etter tilstedeværelse av import/export), legacy eller force (alltid).
Tillater default-import-stil fra CommonJS-moduler (true som standard i de fleste oppsett).
Tillater default-importer fra moduler som bare eksporterer navngitte verdier (kun på typenivå).
Import skrives ut nøyaktig som skrevet; import av bare typer må bruke import type (TS 5).
La importer laste .json-filer som typede verdier.
Ta med .js-filer som inndata til kompileringen.
Typesjekk også .js-filer, og les JSDoc-kommentarene deres; innebærer allowJs.
Hvordan .tsx kompileres: react-jsx (automatisk kjøretid), react (React.createElement) eller preserve.
Begrens automatisk inkluderte @types-pakker til denne listen; en tom tabell inkluderer ingen.
Mapper som søkes gjennom etter @types-pakker, i stedet for alle node_modules/@types oppover i treet.
Sørg for at hver fil kan transpileres isolert (kreves av bundlere og esbuild).
Utdata
Hvor den kompilerte JavaScript-koden skrives.
Roten til kildefilene; holder formen på utdatatreet stabil.
Skriver .js.map-filer slik at feilsøkere kan mape tilbake til TypeScript.
Bygger kildekartet inn som en kommentar i .js-filen, i stedet for en egen .js.map-fil.
Skriver typedeklarasjoner på .d.ts (nødvendig for biblioteker).
Skriver .d.ts.map-filer slik at redigerere kan hoppe fra deklarasjoner tilbake til TypeScript-kilden.
Skriver bare .d.ts-filer; JavaScripten overlates til en bundler (krever declaration eller composite).
Gjenbruk hjelpere som __rest fra tslib, i stedet for å skrive dem inn i hver fil.
Korrekt for..of, spread og destrukturering over iterabler når target er eldre enn ES2015.
Fjerner kommentarer fra JavaScript-koden som skrives ut.
Bare typesjekk; ingen filer skrives (brukes når en bundler står for utdataene).
Stier
En basismappe for løsning av ikke-relative moduler.
Kartlegger importprefikser til plasseringer, f.eks. { "@/*": ["src/*"] }.
Behandle flere mapper som én virtuell rot ved løsning.
Prosjektstruktur
Marker et prosjekt som byggbart for prosjektreferanser (slår på declaration, incremental).
Avhenge av andre tsconfig-prosjekter for raskere, isolerte bygg.
Lagre bygginfo for å hoppe over uendrede filer i neste kjøring.
Andre kontroller
Hopp over typesjekking av .d.ts-filer for fart (true som standard).
Feil på importer som ikke stemmer med filens faktiske bruk av store og små bokstaver.
Array- og indeksstilgang returnerer T | undefined, ikke T.
Klassefelt opprettes med Object.defineProperty i stedet for enkel tilordning (true som standard for ES2022+-mål).
Slår på den eldre dekoratorsyntaksen som eldre rammeverk bruker (fra før standarden).
Rapporter fullstendige typenavn i feilmeldinger, i stedet for å avkorte lange.
Feil når en naken bivirkningsimport (import "./x.css") ikke løser seg til noe.
Tillat importstier som slutter på .ts (krever noEmit eller emitDeclarationOnly).