Tsconfig-asetukset, joilla on väliä, ryhmiteltynä tehtävän mukaan: tyyppitarkistuksen kiristäminen, kielen tason ja moduulien asettaminen, emitoinnin hallinta, import-polkujen mappaaminen, moniprojektirakenteiden järjestäminen ja loppujen tarkistusten säätäminen.
Tsconfig kertoo kääntäjälle, mitkä tiedostot sisällytetään ja kuinka tiukkaa tarkistus on. Kaksi asetusta tekee valtaosan työstä: target asettaa JavaScript-generoinnin tason, ja strict kytkee turvatarkistukset päälle yhtenä nippuna. Alla olevat asetukset ovat niitä, jotka muuttavat toimintaa; oletuksena päällä olevat liput on mainittu. Johda asetuksesi kantatiedostosta ja ylikirjoita vain eroavat kohdat.
Referenssitaulukko · 55 merkintää
tsconfig-asetuksetExplained
55 of 55 rows
Tiukkuus
Pääkytkin: ottaa käyttöön strictNullChecksin, noImplicitAnyn ja useita muita kerralla.
Virhe parametreista ja muuttujista, joiden tyyppiä ei voi päätellä (muuten niistä tulisi any).
null ja undefined eivät ole enää sijoitettavissa kaikkiin tyyppeihin; niiden käytön valitset erikseen.
Tarkistaa funktioparametrit kontravariantisti; paljastaa epäluotettavat callback-parametrityypit.
Tyyppitarkistaa bindin, callin ja applyn funktion ilmoitettuja parametreja vasten.
Virhe, jos luokan kentällä ei ole alkuarvoa eikä sitä aseteta konstruktorissa.
Valinnainen kenttä { p?: T } ei enää hyväksy eksplisiittistä undefined-sijoitusta.
Vaatii override-avainsanan jäsenistä, jotka varjostavat kantaluokan jäsenen.
Virhe julistetuista paikallisista muuttujista, joita ei koskaan lueta.
Virhe julistetuista funktioparametreista, joita ei koskaan lueta.
Virhe vaikutuksettomista lauselausekkeista.
Pisteellä pääsy on kielletty indeksisignatuurin avaimille; käytä hakasulkuja (obj["key"]).
Virhe, kun yksi koodipoluista palauttaa arvon mutta toinen ei.
Virhe, kun switchin case putoaa seuraavaan ilman breakia.
Kieli ja moduulit
JavaScript-generoinnin taso (esim. ES2022); uudemmat tasot vähentävät alaspäinmuunnosta.
Käytettävissä olevat sisäänrakennetut rajapinnat (esim. ES2022, DOM, DOM.Iterable).
Emittoitu moduulijärjestelmä (esim. ESNext, CommonJS, NodeNext).
Noudattaa Noden oikeita sääntöjä: kukin tiedosto valitsee CJS:n tai ESM:n lähimmän package.json:n perusteella, ja suhteelliset importit vaativat tiedostopäätteen.
Miten import-polut ratkaistaan (esim. bundler, node, nodenext).
Miten tiedosto lasketaan moduuliksi: auto (import/export-merkintöjen perusteella), legacy tai force (aina).
Sallii default-tuontityylin CommonJS-moduuleista (oletuksena true useimmissa asennuksissa).
Sallii default-importit moduuleista, jotka vievät vain nimettyjä arvoja (vain tyypitasolla).
Importit emittoituvat täsmälleen kirjoitettuina; tyyppituonnit on merkittävä import typellä (TS 5).
Antaa importien ladata .json-tiedostoja tyypitettynä arvoina.
Ottaa .js-tiedostot mukaan käännöksen syötteiksi.
Tyyppitarkistaa myös .js-tiedostot lukeen niiden JSDoc-kommentteja; sisältää allowJs:n.
Miten .tsx käännetään: react-jsx (automaattinen runtime), react (React.createElement) tai preserve.
Rajoittaa automaattisesti mukaan otettavat @types-paketit tähän listaan; tyhjä taulukko ei ota mitään.
Kansiot, joista @types-paketteja etsitään, koko node_modules/@types -puun sijaan.
Varmistaa, että jokainen tiedosto voidaan transpiloida erillään (bundlereiden ja esbuildin vaatimus).
Emit
Mihin käännetty JavaScript kirjoitetaan.
Lähdetiedostojen juuri; pitää tulospuun muodon vakaana.
Tuottaa .js.map-tiedostot, jotta debuggerit palaavat TypeScriptiin.
Upottaa source mapin kommenttina .js-tiedostoon .js.map-tiedoston sijaan.
Tuottaa .d.ts-tyyppimäärittelyt (kirjastoille välttämätön).
Tuottaa .d.ts.map-tiedostot, jotta editorit hyppäävät määrittelyistä TypeScript-lähteeseen.
Tuottaa vain .d.ts-tiedostot; JavaScript jää bundlerille (vaatii declarationin tai compositen).
Uudelleenkäyttää tslibin helpereita kuten __rest sen sijaan, että emittoisi ne jokaiseen tiedostoon.
Korjaa for..of:n, spreadin ja destruktuoinnin iteroitavien yli, kun taso on ennen ES2015:ä.
Poistaa kommentit emittoituvasta JavaScriptistä.
Vain tyyppitarkistus; ei kirjoita tiedostoja (käytössä, kun bundler hoitaa emitoinnin).