Skip to content

tsconfig-alternativ förklarade

tsconfig-alternativen som spelar roll, grupperade efter uppgift: strama åt typkontrollen, ställa in språkmål och moduler, styra vad som skrivs ut, mappa importsökvägar, strukturera byggen med flera projekt och finjustera de övriga kontrollerna.

En tsconfig talar om för kompilatorn vilka filer den ska inkludera och hur stringent den ska vara. Två alternativ gör det mesta av jobbet: target sätter nivån för JavaScript-generering, och strict slår på säkerhetskontrollerna som ett paket. Alternativen nedan är de som ändrar beteende; flaggor som står på som standard är markerade. Härled din konfiguration från en bas och överstyr bara det som skiljer.

Referanstabell · 55 poster
55 of 55 rows
Stränghet
Huvudbrytare: slår på strictNullChecks, noImplicitAny och flera andra på en gång.
Fel på parametrar och variabler vars typ inte kan härledas (skulle annars bli any).
null och undefined kan inte längre tilldelas till vilken typ som helst; du väljer det explicit.
Kontrollerar funktionsparametrar kontravariant; fångar osunda parametertyper i callbacks.
Typkontrollerar bind, call och apply mot funktionens deklarerade parametrar.
Fel när en klassmedlem saknar startvärde och inte tilldelas i konstruktorn.
En valfri egenskap { p?: T } accepterar inte längre en explicit tilldelning av undefined.
Kräver nyckelordet override på medlemmar som skuggar en medlem i basklassen.
Fel på deklarerade lokala variabler som aldrig läses.
Fel på deklarerade funktionsparametrar som aldrig läses.
Fel på uttryckssatser utan effekt.
Punktåtkomst är förbjuden för nycklar från en indexsignatur; använd hakparenteser (obj["key"]).
Fel när en kodgren returnerar ett värde men en annan inte gör det.
Fel när en switch-case faller vidare till nästa utan break.
Språk och moduler
Nivån för JavaScript-generering (t.ex. ES2022); nyare mål ger mindre downleveling.
De inbyggda API:erna som finns tillgängliga (t.ex. ES2022, DOM, DOM.Iterable).
Modulsystemet i den genererade koden (t.ex. ESNext, CommonJS, NodeNext).
Nodes verkliga regler: varje fil väljer CJS eller ESM utifrån närmaste package.json, och relativa importer behöver filändelser.
Hur importsökvägar löses (t.ex. bundler, node, nodenext).
När en fil räknas som en modul: auto (efter förekomst av import/export), legacy eller force (alltid).
Tillåter default-import-stil från CommonJS-moduler (som standard true i de flesta uppsättningar).
Tillåter default-importer från moduler som bara exporterar namngivna värden (endast på typnivå).
Importer skrivs ut exakt som de är skrivna; typimporter måste använda import type (TS 5).
Låter importer läsa in .json-filer som typade värden.
Ta med .js-filer som indata till kompileringen.
Typkontrollera även .js-filer och läs deras JSDoc-kommentarer; innebär allowJs.
Hur .tsx kompileras: react-jsx (automatisk runtime), react (React.createElement) eller preserve.
Begränsa automatiskt inkluderade @types-paket till denna lista; en tom array inkluderar inga.
Kataloger som söks igenom efter @types-paket, i stället för varje node_modules/@types uppåt i trädet.
Säkerställ att varje fil kan transpileras isolerat (krävs av bundlers och esbuild).
Kodgenerering
Vart den kompilerade JavaScript-koden skrivs.
Roten för källfilerna; håller formen på utdataträdet stabil.
Skriver .js.map-filer så att felsökare kan mappa tillbaka till TypeScript.
Bäddar in källkartan som en kommentar i .js-filen, i stället för en separat .js.map-fil.
Skriver typdeklarationer på .d.ts (behövs för bibliotek).
Skriver .d.ts.map-filer så att redigerare hoppar från deklarationer tillbaka till TypeScript-källan.
Skriver bara .d.ts-filer; JavaScript-koden lämnas åt en bundler (kräver declaration eller composite).
Återanvänd hjälpare som __rest från tslib, i stället för att skriva in dem i varje fil.
Korrekt for..of, spread och destrukturering över itererbara när target är äldre än ES2015.
Tar bort kommentarer från den genererade JavaScript-koden.
Bara typkontroll; inga filer skrivs (används när en bundler står för utdata).
Sökvägar
En baskatalog för upplösning av icke-relativa moduler.
Mappar importprefix till platser, t.ex. { "@/*": ["src/*"] }.
Behandla flera kataloger som en virtuell rot vid upplösning.
Projektstruktur
Markera ett projekt som byggbart för projektreferenser (slår på declaration, incremental).
Bero på andra tsconfig-projekt för snabbare, isolerade byggen.
Spara bygginformation för att hoppa över oförändrade filer nästa körning.
Övriga kontroller
Hoppa över typkontroll av .d.ts-filer för fart (som standard true).
Fel på importer som inte stämmer med filens faktiska skiftläge.
Array- och indexåtkomst returnerar T | undefined, inte T.
Klassfält skapas med Object.defineProperty i stället för enkel tilldelning (som standard true för ES2022+-mål).
Aktiverar den äldre decoratorsyntax som äldre ramverk använder (från före standarden).
Rapporterar fullständiga typnamn i felmeddelanden, i stället för att trunkera långa.
Fel när en ren sidoeffektimport (import "./x.css") inte löser till något.
Tillåt importsökvägar som slutar på .ts (kräver noEmit eller emitDeclarationOnly).