Skip to content

Mga tsconfig Option ipinaliwanag

Mga tsconfig option na may halaga, naka-group ayon sa gawain: paghigpit ng type-checking, pagtakda ng language target at module, pagkontrol kung ano ang nae-emit, pag-map ng import path, pag-ayos ng multi-project build, at pag-tune ng natitirang check.

Ang tsconfig ang nagsasabi sa compiler kung aling file ang isasama at gaano ka-strict. Dalawang option ang gumagawa ng karamihan ng trabaho: itinatakda ng target ang level ng JavaScript generation, at pinapagana ng strict ang mga safety check bilang isang bundle. Ang mga option sa ibaba ay ang mga nagbabago ng behavior; minamarkahan ang mga flag na default-on. I-derive ang config mo mula sa isang base, tapos i-override lang ang mga nagkakaiba.

Talaan ng sanggunian · 55 mga entry
55 of 55 rows
Pagka-strict
Master switch: pinapagana ang strictNullChecks, noImplicitAny, at ilan pa nang sabay-sabay.
Nag-e-error sa mga parameter at variable na hindi mainfer ang type (magiging any kung hindi).
Hindi na maaaring i-assign ang null at undefined sa bawat type; kailangan mong piliin ang mga ito nang tahasan.
Tinutseck ang mga function parameter nang contravariantly; nahuhuli ang unsound na callback parameter type.
Tina-type-check ang bind, call, at apply laban sa mga idineklarang parameter ng function.
Nag-e-error kapag ang class property ay walang initial value at hindi naa-assign sa constructor.
Ang optional property na { p?: T } ay hindi na tumatanggap ng tahasang undefined assignment.
Kailangan ng override keyword sa mga member na nagta-shadow ng base-class member.
Nag-e-error sa mga local variable na idineklaro pero hindi kailanman nababasa.
Nag-e-error sa mga function parameter na idineklaro pero hindi kailanman nababasa.
Nag-e-error sa mga expression statement na walang epekto.
Bawal ang dot access para sa mga index-signature key; gumamit ng bracket (obj["key"]).
Nag-e-error kapag may isang code path na nagbabalik ng value pero may isa na hindi.
Nag-e-error kapag ang switch case ay nahuhulog sa susunod nang walang break.
Wika at module
Ang level ng JavaScript generation (hal. ES2022); mas bagong target, mas kaunting downleveling.
Mga built-in API na available (hal. ES2022, DOM, DOM.Iterable).
Ang module system na nae-emit (hal. ESNext, CommonJS, NodeNext).
Ginagamit ang tunay na mga patakaran ng Node: pumipili ang bawat file ng CJS o ESM batay sa pinakamalapit na package.json, at kailangan ng file extension ang mga relative import.
Paano nireresolba ang mga import path (hal. bundler, node, nodenext).
Paano itinuturing na module ang isang file: auto (sa pagkakaroon ng import/export), legacy, o force (palaging).
Pinapayagan ang default-import style mula sa mga CommonJS module (default true sa karamihan ng setup).
Pinapayagan ang default import mula sa mga module na named value lang ang ine-export (type-level lang).
Ang mga import ay nae-emit nang eksakto tulad ng pagsulat; kailangang gumamit ng import type ang type-only import (TS 5).
Pinapayagan ang import na mag-load ng .json file bilang typed value.
Isinasama ang mga .js file bilang input sa compilation.
Tina-type-check din ang mga .js file, binabasa ang JSDoc comment nila; kasama rito ang allowJs.
Paano kino-compile ang .tsx: react-jsx (automatic runtime), react (React.createElement), o preserve.
Inililimita ang mga auto-include na @types package sa listahang ito; walang maisasama ang empty array.
Mga folder na siniscan para sa @types package sa halip na lahat ng node_modules/@types pataas sa puno.
Tinitiyak na kayang i-transpile ang bawat file nang hiwalay (kailangan ng mga bundler at esbuild).
Emit
Saan isinusulat ang compiled JavaScript.
Ang root ng mga source file; pinapanatiling stable ang hugis ng output tree.
Nag-e-emit ng .js.map file para makabalik ang mga debugger sa TypeScript.
Ini-embed ang source map bilang comment sa loob ng .js file sa halip na .js.map file.
Nag-e-emit ng .d.ts type declaration (kailangan ng mga library).
Nag-e-emit ng .d.ts.map file para tumalon ang mga editor mula sa declaration pabalik sa TypeScript source.
Nag-e-emit lang ng .d.ts file; naiiwan ang JavaScript sa isang bundler (nangangailangan ng declaration o composite).
Muliling gumagamit ng mga helper tulad ng __rest mula sa tslib sa halip na i-emit ang mga ito sa bawat file.
Inaayos ang for..of, spread, at destructuring sa mga iterable kapag mas matanda ang target sa ES2015.
Tinatanggal ang mga comment mula sa emitted JavaScript.
Type-check lang; walang sinusulat na file (gamit kapag ang bundler ang nag-e-emit).
Mga path
Isang base directory para sa non-relative module resolution.
Minamap ang mga import prefix sa mga lokasyon, hal. { "@/*": ["src/*"] }.
Itinuturing ang ilang directory bilang isang virtual root para sa resolution.
Struktura ng project
Minamarkahan ang project bilang buildable para sa project reference (pinapagana ang declaration, incremental).
Umaasa sa ibang tsconfig project para sa mas mabilis at hiwalay na build.
Nagsasave ng build info para laktawan ang muling pagsusuri sa mga hindi nabagong file sa susunod na run.
Iba pang check
Nilalaktawan ang type-checking ng mga .d.ts file para sa bilis (default true).
Nag-e-error sa mga import na hindi tumutugma sa aktwal na casing ng file.
Ang array at index access ay nagbabalik ng T | undefined, hindi T.
Ang mga class field ay ginagawa gamit ang Object.defineProperty sa halip na plain assignment (default true para sa ES2022+ target).
Pinapagana ang legacy decorator syntax na ginagamit ng mas lumang framework (preno-standard).
Nag-uulat ng buong type name sa mga error message sa halip na i-truncate ang mahahaba.
Nag-e-error kapag ang bare side-effect import (import "./x.css") ay walang nareresolba.
Pinapayagan ang import path na nagtatapos sa .ts (nangangailangan ng noEmit o emitDeclarationOnly).