Skip to main content

A Microsoft március 23-án kiadta a TypeScript 6.0 végleges verzióját. Ez a TypeScript 6.0 frissítés különleges, mert a csapat megerősítette: ez lesz az utolsó kiadás a jelenlegi JavaScript-alapú kódbázisból. A következő főverzió, a TypeScript 7.0, már teljes egészében Go nyelven készül.

TypeScript 6.0 frissítés: új alapértelmezések és funkcionalitás

A 6.0-s verzió több fontos alapértelmezést változtat meg. A strict mód mostantól alapértelmezetten bekapcsolt. Korábban a legtöbb projekt manuálisan kapcsolta be ezt az opciót. Most a csapat hivatalosan is elismerte, hogy a szigorúbb típusellenőrzés a helyes irány.

A module opció alapértéke esnext lett. A target pedig az aktuális ECMAScript specifikáció verziójára áll, ami jelenleg az es2025. Ez tükrözi, hogy a legtöbb fejlesztő evergreen böngészőkre és modern futtatókörnyezetekre céloz. Az ES5-ös kimenet iránti igény gyakorlatilag megszűnt.

A types mező alapértéke mostantól üres tömb. Ez azt jelenti, hogy a TypeScript nem tölti be automatikusan az összes @types csomagot a node_modules-ból. Fejlesztőknek explicit meg kell adniuk, melyik típusdefiníciókat akarják használni. Egy tipikus beállítás így néz ki: „types”: [„node”]. Ez akár 20-50%-kal gyorsíthatja a build időt nagyobb projekteknél.

Új típusok is érkeztek a kiadással. A Temporal API elérte a stage 4 státuszt az ECMAScript szabványban. A TypeScript 6.0 beépített típusokat ad hozzá ehhez az API-hoz. A Map.getOrInsert metódus egyszerűsíti a gyakori mintát, amikor egy kulcs létezését ellenőrizzük és alapértéket adunk. A RegExp.escape függvény biztonságossá teszi a speciális karakterek kezelését reguláris kifejezésekben. Mindkét funkció az es2025 lib részeként érhető el.

Elavult funkciók és kötelező migráció

A kiadás számos régóta támogatott opciót avulttá minősít. Az ES5 target megszűnik. Több mint egy évtizede jelent meg az ES2015, és az Internet Explorer nyugdíjazása óta nincs valós igény az ES5 kimenetre. Aki mégis szükségeli, külső fordítót kell használnia.

Az AMD, UMD és SystemJS modul formátumok szintén elavultak. Ezek a korai JavaScript-modulrendszerek korából származnak. Ma az ESM az univerzális standard. A moduleResolution: node (korábban node10) sem használható többé. Helyette a nodenext vagy a bundler opciót ajánlják.

A baseUrl opció is elavulttá vált. Korábban sokan a paths mezővel együtt használták aliasok létrehozásához. A probléma az volt, hogy a baseUrl egyben modul-feloldási gyökér is volt. Ez félrevezető import útvonalakat eredményezett. Mostantól a path-mapping bejegyzésekhez teljes relatív útvonalat kell megadni.

Az esModuleInterop és az allowSyntheticDefaultImports értéke mostantól mindig igaz. A false beállítás nem engedélyezett. Ez hosszú távon stabilabb CommonJS-ESM együttműködést biztosít. Az outFile opciót is eltávolították. Külső bundlerek, mint a Webpack, Rollup vagy esbuild, jobban kezelik a fájlok összefűzését.

A rootDir alapértéke a tsconfig.json könyvtára lett. Korábban a TypeScript a forrásfájlok közös gyökérkönyvtárát következtette ki. Ez nehezen kiszámítható viselkedéshez vezetett. Most explicit beállítást igényel, ha a források alkönyvtárban vannak.

Felkészülés a TypeScript 7.0 natív fordítóra

A TypeScript 7.0 Go nyelven írt fordítója akár tízszeres sebességnövekedést hoz. A natív kód és a megosztott memóriájú többszálúság együttesen drámaian csökkenti a fordítási időt. Ez különösen nagy kódbázisoknál jelent áttörést.

A párhuzamos típusellenőrzés azonban új kihívást hoz. A típusok belső azonosítói nem-determinisztikussá válhatnak. A 6.0-s verzió ezért bevezeti a –stableTypeOrdering flaget. Ez a 7.0 rendezési algoritmusát alkalmazza a 6.0-ban. Segít összehasonlítani a két verzió kimenetét a migráció során. A flag akár 25%-os lassulást okozhat, ezért csak diagnosztikai célra ajánlott.

A csapat szerint a 7.0 megjelenése néhány hónapon belül várható. A natív előnézeti verziók már telepíthetők npm-ről a @typescript/native-preview csomagon keresztül. A VS Code bővítmény is elérhető hozzá. A Microsoft nagy belső projekteken már aktívan használja az új fordítót.

A fejlesztők számára a 6.0-ra való frissítés a legfontosabb első lépés. Az elavult opciók a 6.0-ban még működnek az „ignoreDeprecations”: „6.0” beállítással. A 7.0-ban viszont véglegesen eltűnnek. A hivatalos blogposzt részletes migrációs útmutatót tartalmaz minden egyes változáshoz.

A TypeScript 6.0 átmeneti kiadás, de ez nem jelenti, hogy érdektelen. Aki most frissít, időben felkészülhet a natív fordítóra. Az új alapértelmezések szigorúbbak, de a modern fejlesztési gyakorlatoknak jobban megfelelnek. Érdemes a TypeScript dokumentációt és a GitHub repót követni a további fejleményekért.

Humli Miklós

Több mint 15 éve dolgozom a digitális termékfejlesztés világában, elsősorban webdesign, frontend, backend és WordPress fejlesztés területén. Tapasztalataimat kis- és nagyvállalati projekteken, valamint szabadúszóként és csapatvezetőként szereztem.

Humli Miklós | Blog
Adatvédelmi áttekintés

Ez a weboldal sütiket használ, hogy a lehető legjobb felhasználói élményt nyújthassuk. A cookie-k információit tárolja a böngészőjében, és olyan funkciókat lát el, mint a felismerés, amikor visszatér a weboldalunkra, és segítjük a csapatunkat abban, hogy megértsék, hogy a weboldal mely részei érdekesek és hasznosak.