Skip to content

tsconfig beállítások elmagyarázva

A tsconfig fontos beállításai feladat szerint csoportosítva: a típusellenőrzés szigorítása, a nyelvi cél és a modulok beállítása, a kimenet vezérlése, importútvonalak leképezése, többprojektes buildek strukturálása és a maradék ellenőrzések finomhangolása.

A tsconfig megmondja a fordítónak, mely fájlokat vegye figyelembe, és mennyire legyen szigorú. Két beállítás végzi a munka nagyját: a target állítja a JavaScript-generálás szintjét, a strict pedig egy csomagban bekapcsolja a biztonsági ellenőrzéseket. Az alábbi beállítások a viselkedést változtatják; az alapból bekapcsolt jelzők meg vannak jelölve. Származtasd a konfigot egy bázisból, majd csak az eltérő részeket írd felül.

Referenciatáblázat · 55 bejegyzés
55 of 55 rows
Szigorság
Főkapcsoló: egyszerre bekapcsolja a strictNullChecks, noImplicitAny és több más beállítást.
Hibát jelez azoknál a paramétereken és változóknál, amelyek típusa nem következtethető ki (különben any lenne).
A null és az undefined már nem rendelhető minden típushoz; kifejezetten kell vállalnod.
A függvényparamétereket kontravariánsan ellenőrzi; kiszűri a hangtalan callback-paramétertípusokat.
A bind, call és apply típusellenőrzése a függvény deklarált paraméterei szerint.
Hibát jelez, ha egy osztályattribútumnak nincs kezdőértéke, és a konstruktorban sem kap értéket.
Egy opcionális { p?: T } attribútum már nem fogad el kifejezett undefined értékadást.
Megköveteli az override kulcsszót az olyan tagokon, amelyek elfednek egy alaposztálybeli tagot.
Hibát jelez a soha nem olvasott, deklarált helyi változókra.
Hibát jelez a soha nem olvasott, deklarált függvényparaméterekre.
Hibát jelez az olyan kifejezés-utasításokra, amelyeknek nincs hatásuk.
Az index-szignatúra kulcsainál nem engedélyezett a pont-hozzáférés; használj szögletes zárójelet (obj["key"]).
Hibát jelez, ha egy kódútvonal értéket ad vissza, egy másik viszont nem.
Hibát jelez, ha egy switch-ág break nélkül esik át a következőbe.
Nyelv és modulok
A JavaScript-generálás szintje (pl. ES2022); újabb targeteknél kevesebb visszaalakítás (downleveling) történik.
Az elérhető beépített API-k (pl. ES2022, DOM, DOM.Iterable).
A kibocsátott modulrendszer (pl. ESNext, CommonJS, NodeNext).
A Node valódi szabályait használja: minden fájl a legközelebbi package.json alapján választ CJS vagy ESM közül, és a relatív importokhoz fájlkiterjesztés kell.
Az importútvonalak feloldásának módja (pl. bundler, node, nodenext).
Mikor számít egy fájl modulnak: auto (import/export jelenléte szerint), legacy vagy force (mindig).
Lehetővé teszi a default-import stílust CommonJS-modulokból (a legtöbb beállításban alapból true).
Lehetővé teszi a default importot olyan modulokból, amelyek csak névvel exportálnak (csak típusszinten).
Az importok pontosan úgy íródnak ki, ahogy meg vannak írva; a csak típusú importoknak import type-ot kell használniuk (TS 5).
Az importok .json fájlokat is betölthetnek típusos értékként.
A .js fájlok is a fordítás bemenetéhez tartoznak.
A .js fájlokat is típusellenőrzi, a JSDoc kommentjeiket olvasva; magában foglalja az allowJs-t.
A .tsx fordításának módja: react-jsx (automatikus runtime), react (React.createElement) vagy preserve.
Az automatikusan beolvasott @types csomagokat erre a listára korlátozza; az üres tömb egyet sem olvas be.
Azok a mappák, amelyekben @types csomagokat keres, a fán felfelé található összes node_modules/@types helyett.
Biztosítja, hogy minden fájl önállóan transzpilálható legyen (a bundlerek és az esbuild megkövetelik).
Kimenet (emit)
Hová kerül a lefordított JavaScript.
A forrásfájlok gyökere; stabilan tartja a kimeneti fa alakját.
.js.map fájlokat állít elő, hogy a debuggerek visszatérképezzenek a TypeScriptre.
A source mapet kommentként ágyazza a .js fájlba .js.map fájl helyett.
.d.ts típusdeklarációkat állít elő (könyvtárakhoz kell).
.d.ts.map fájlokat állít elő, hogy a szerkesztők a deklarációktól a TypeScript-forráshoz ugorjanak.
Csak .d.ts fájlokat állít elő; a JavaScriptet bundlerre hagyja (declaration vagy composite szükséges hozzá).
A __rest-szerű helpereket a tslibből újrahasznosítja, ahelyett hogy minden fájlba kiírná őket.
Helyesen kezeli a for..of, spread és destrukturálást iterálhatókon, ha a target ES2015 előtti.
Eltávolítja a kommenteket a kibocsátott JavaScriptből.
Csak típusellenőriz, fájlt nem ír (akkor használatos, ha a bundler végzi az emitot).
Útvonalak
Alapkönyvtár a nem relatív modulfeloldáshoz.
Import-előtagokat képez le helyekre, pl. { "@/*": ["src/*"] }.
Több mappát egyetlen virtuális gyökérként kezel a feloldáshoz.
Projektszerkezet
Projektet buildelhetőként jelöl meg a projekt-referenciákhoz (bekapcsolja a declaration és incremental opciókat).
Más tsconfig-projektekre támaszkodik a gyorsabb, izolált buildekhez.
Elmenti a build-információt, hogy a következő futtatás kihagyhassa a változatlan fájlok újraellenőrzését.
Egyéb ellenőrzések
Kihagyja a .d.ts fájlok típusellenőrzését a sebesség érdekében (alapból true).
Hibát jelez az olyan importokon, amelyek eltérnek a fájl tényleges kis- és nagybetűhasználatától.
A tömb- és indexelési hozzáférés T | undefined-et ad vissza, nem T-t.
Az osztályattribútumok Object.defineProperty-jel jönnek létre sima értékadás helyett (ES2022+ targeteknél alapból true).
Bekapcsolja a régebbi keretrendszerek által használt örökölt dekorátor-szintaxist (standard előtti).
A teljes típusneveket jelenti a hibaüzenetekben, a hosszúak csonkítása helyett.
Hibát jelez, ha egy csupasz mellékhatás-import (import "./x.css") semmit sem old fel.
Lehetővé teszi a .ts-re végződő importútvonalakat (noEmit vagy emitDeclarationOnly szükséges hozzá).