Microsoft on avaldanud TypeScript 6.0 versiooni, veebirakenduste arendamiseks mÔeldud keele, mis laiendab JavaScripti vÔimalusi, ja selle seotud tööriistad. TypeScripti koodi kompilaator, mis tÔlgib TypeScripti koodi JavaScripti esitusvormi, on litsentseeritud Apache 2.0 alusel, arendus kÀib avalikus hoidlas GitHubi kaudu. Keelespetsifikatsioonid on avatud ja avaldatud Open Web Foundation Specification Agreement raames.
TypeScripti keel laiendab JavaScripti vĂ”imalusi, olles samas tĂ€ielikult tagurpidi ĂŒhilduv, mis lihtsustab olemasolevate rakenduste tĂ”lkimist TypeScripti. LĂ”pp-rakendus TypeScriptis kompileeritakse tavalisse JavaScripti, mida saab tĂ€iustada mistahes kaasaegses veebibrauseris vĂ”i kasutada platvormidega Node.js, Bun ja Deno. TypeScripti programmides on vĂ”imalik kasutada olemasolevaid JavaScripti teeke. TypeScript eristub JavaScriptist jĂ€rjepidevate tĂŒĂŒpide mÀÀratlemise ning tĂ€isklasside kasutamise toetamise poolest. Staatiline tĂŒpiseerimine aitab vĂ€ltida paljusid vigu arendusprotsessis, vĂ”imaldab rakendada tĂ€iendavaid optimeerimistehnikaid, lihtsustab silumist ning muudab koodi arusaadavamaks ja lihtsamaks edasise muutmise ja hooldamise osas.
TypeScript 6.0 haru mĂ€rgitud viimaseks, mida tarnitakse TypeScripti kompilaatoriga, mis tĂ”lgib JavaScripti. Haru TypeScript 7.0 korral liigub projekt uue kompilaatori, typescript-go (tsgo) juurde, mis arendatakse Go keeles alates 2024. aastast. Uus kompilaator suurendab oluliselt ehituse kiirus, vĂ€hendab mĂ€lutarbimist ja lĂŒhendab koodiredaktorite kĂ€ivitusaega, mis lahendab praegu tĂ€heldatud skaleeritavuse probleeme vĂ€ga suurtes projektides. Samuti antakse vĂ€lja kompaktne kĂ€surea tööriistakomplekt, mis vĂ”imaldab kiiresti koodi koostada selle toimivuse kontrollimiseks.
TypeScript 6.x haru jĂ€tkab vana kompilaatori tarnimist, kuid sisaldab eraldi muudatusi, et valmistuda ĂŒleminekuks uuele elluviimisele. TypeScript 6.0 kĂ€ivitamine tĂ”lgendatakse sillana TypeScript 5.9 ja 7.0 vahel, ning sisaldab muudatusi, mis on suunatud peamiselt tulevase ĂŒlemineku lihtsustamisele TypeScript 7.0 harule. Testimiseks on saadaval TypeScript 7.0 eelversioon, mis on avaldatud VSCode'i tĂ€ienduse ja NPM-paketi kujul. PĂ€rast TypeScript 7.0 vĂ€ljaandmist eksisteerivad harud 6.x ja 7.x paralleelselt ning neid toetatakse koos, kuni TypeScript 7.x haru jĂ”uab kĂŒpsesse seisundisse, olles valmis tĂ€ielikult asendama vana tööriistakomplekti.
TypeScript 6.0 muudatused:
- Rakendatud on vĂ”imalus kasutada Node.js stiilis â#/â prefikse paketi sees defineeritud moodulite aliasite importimiseks, selle asemel, et nĂ€idata suhtelisi teid. NĂ€iteks âimport * as utils from â#root/utils.jsââ selle asemel, et âimport * as utils from â../../utils.jsâ.
- Lisatud on lipp ââstableTypeOrderingâ TypeScript 7 harus rakendatud deterministliku tĂŒĂŒbi sorteerimise algoritmi aktiveerimiseks kompilaatoris, tagades tĂŒĂŒpide mÀÀratlemise sama jĂ€rjekorra igas keskkonnas. ReĆŸiimi soovitatakse kasutada ainult vĂ”imalike probleemide diagnoosimiseks enne ĂŒleminekut TypeScript 7 harule, kuna selle aktiveerimine TypeScript 6.0-s vĂ”ib aeglustada kompilaatorit 25%.
- Rakendatud on sisseehitatud tĂŒĂŒbid API Temporal jaoks, mis pakub alternatiivseid meetodeid kuupĂ€evade ja aegade töötlemiseks, vĂ”imaldades kuupĂ€evi manipuleerida nii ajavööndite arvestamisega kui ka ilma, aega konverteerida, vĂ€ljundit vormindada ja ajaga tehteid teha.
- Lisatud on tĂŒĂŒbid upsert-meetodite getOrInsert ja getOrInsertComputed jaoks Map ja WeakMap objektides, mis tagastavad juba olemasoleva vÀÀrtuse, mis on seotud antud vĂ”tmega, vĂ”i loovad uue kirje, kui vĂ”tme jaoks midagi ei leitud.
- Lisatud on toetus funktsioonile RegExp.escape, mis escapeŽib erimÀrgistused stringides, et neid vÔiks ohutult kasutada regulaaravaldiste mallides, mis on mÀÀratletud RegExp() konstruktori kaudu.
- Muutunud on vaike seadistused:
- Parameeter rootDir mÀÀrab nĂŒĂŒd, et see viitab kĂ€esolevale kataloogile â.â, kus asub faili tsconfig.json konfiguratsioon, mitte tĂŒĂŒbipĂ”hisele kataloogile, kus on allikakood.
- VĂ€li âtypesâ failis tsconfig.json mÀÀratletakse nĂŒĂŒd kui â[]â, mitte â[â*â]â, st TypeScript ei hĂ”lma enam vaikimisi kĂ”iki pakette ânode_modules/@typesâ ja nĂ”uab globaalsete pakettide selget mÀÀratlemist (nĂ€iteks [ânodeâ, âjestâ]). See muudatus vĂ€hendab kompileerimise aega 20-50%.
- SihtvÀÀrtus hĂ”lmab nĂŒĂŒd praegust ECMAScripti versiooni (es2025). SihtvÀÀrtuses on vananenud versiooni es5 (ECMAScript 5) kĂ€sitletud minimaalse versioonina es6 (ECMAScript 2015).
- Vaikimisi on range reĆŸiim aktiveeritud, et rangelt kontrollida tĂŒĂŒpe.
- Parameeter module on vaikimisi seatud vÀÀrtusele âesnextâ, mis hĂ”lmab JavaScripti moodulite (ESM) toetust import ja export direktiividega, selle asemel, et kasutada vananenud CommonJS formaati.
- Komplektori jÔudluse parandamiseks on vananenud:
- Valik ââbaseUrlâ.
- Kasutada vĂ”tmesĂ”na module moodulite nimede mÀÀratlemiseks (âmodule Foo { ⊠}â asemel ânamespace Foo { ⊠}â).
- Valik ââoutFileâ (kasutage vĂ€list pakendajat nagu esbuild, Rollup, ja Webpack);
- ReĆŸiim ââmoduleResolution: classicâ (soovitatav on kasutada nodenext vĂ”i bundler).
Allikas: opennet.ru
