Kompania Microsoft publikoi lëshimin e TypeScript 6.0, një gjuhë për zhvillimin e aplikacioneve web që zgjeron mundësitë e JavaScript dhe mjetet e lidhura me të. Kodi i kompilatorit, që përkthen kodin TypeScript në një përfaqësim JavaScript, shpërndahet nën licencën Apache 2.0, dhe zhvillimi kryhet në një depo publike përmes shërbimit GitHub. Specifikimet e gjuhës janë të hapura dhe janë publikuar në kuadër të marrëveshjes Open Web Foundation Specification Agreement.
Gjuha TypeScript zgjeron mundësitë e JavaScript, duke mbetur plotësisht e përputhshme me versionet e mëparshme, çka e bën të lehtë migrimin e aplikacioneve ekzistuese në TypeScript. Aplikacioni përfundimtar në TypeScript kompilohet në JavaScript të zakonshëm, i cili mund të ekzekutohet në çdo shfletues modern ose të përdoret me platforma si Node.js, Bun dhe Deno. Në programet TypeScript mund të përdoren biblioteka ekzistuese JavaScript. Ndryshe nga JavaScript, gjuha TypeScript ofron mjete për përcaktimin e qartë të tipeve, si dhe mbështetje për përdorimin e klasave të plota. Tipizimi statik ndihmon në shmangien e shumë gabimeve gjatë zhvillimit, mundëson përdorimin e teknikave të tjera optimizuese, lehtëson procesin e debug-imit, bën kodin më të lexueshëm dhe më të lehtë për përmirësim dhe mbështetje.
Dega TypeScript 6.0 është shënuar si e fundit, e pajisur me kompilatorin në gjuhën TypeScript, i përkthyer në JavaScript. Në degën TypeScript 7.0, projekti do të kalojë në kompilatorin e ri typescript-go (tsgo), i zhvilluar që nga viti 2024 në gjuhën Go. Kompilatori i ri do të rrisë ndjeshëm shpejtësinë e ndërtimit, do të ulë konsumimin e memories dhe do të shkurtëzojë kohën e ngarkimit të redaktorëve të kodit, duke zgjidhur problemet aktuale me shkallëzimin në përdorim të projekteve shumë të mëdha. Gjithashtu do të ofrohet një mjet i kompakt për komandat, që lejon përmbledhjen e shpejtë të kodit për të verifikuar funksionalitetin e tij.
Bashkimi TypeScript 6.x vazhdon të ofrojë një kompilues të vjetër, por përmban ndryshime të veçanta për të përgatitur migrimin në implementimin e ri. Publikimi i TypeScript 6.0 pozicionohet si një lidhje midis degëve të TypeScript 5.9 dhe 7.0 dhe përmban ndryshime, kryesisht të fokusuar në thjeshtimin e kalimit të ardhshëm në degën TypeScript 7.0. Një version provues i TypeScript 7.0 është në dispozicion për testim, i publikuar si një shtesë për VSCode dhe një paketë NPM. Pas publikimit të TypeScript 7.0, degët 6.x dhe 7.x do të bashkëjetojnë dhe do të mbështeten paralelisht derisa dega TypeScript 7.x të arrijë një gjendje të pjekur, e gatshme për të zëvendësuar plotësisht mjetet e vjetra.
Ndër ndryshimet në TypeScript 6.0:
- ĂshtĂ« implementuar mundĂ«sia e pĂ«rdorimit tĂ« parafiksit «#/» nĂ« stilin Node.js pĂ«r importimin e pseudonimeve tĂ« moduleve, tĂ« pĂ«rcaktuar brenda paketĂ«s, nĂ« vend tĂ« shenjave tĂ« rrugĂ«ve relative. PĂ«r shembull, âimport * as utils from «#root/utils.js»â nĂ« vend tĂ« âimport * as utils from «../../utils.jsâ.
- Shtuar flamurin «âstableTypeOrdering» pĂ«r aktivizimin e algoritmit deterministik tĂ« renditjes sĂ« tipeve qĂ« aplikohet nĂ« degĂ«n TypeScript 7 brenda kompilerit, i cili garanton njĂ« renditje tĂ« njĂ«jtĂ« tĂ« pĂ«rcaktimeve tĂ« tipeve nĂ« çdo ambient. Ky mod Ă«shtĂ« rekomanduar tĂ« pĂ«rdoret vetĂ«m pĂ«r diagnostikimin e problemeve tĂ« mundshme para kalimit nĂ« degĂ«n TypeScript 7, pasi aktivizimi i tij nĂ« TypeScript 6.0 mund ta ngadalĂ«sojĂ« kompilerin deri nĂ« 25%.
- Janë realizuar tipe të integruara për API Temporal, që ofron metoda alternative për punën me datat dhe oraret, të cilat lejojnë manipulimin e datave me dhe pa konsideratë për zonat kohore, të konvertojnë orarin, të formatojnë daljet dhe të kryejnë operacione aritmetike me kohën.
- Janë shtuar tipe për metodat upsert getOrInsert dhe getOrInsertComputed në objektet Map dhe WeakMap, që kthejnë vlerën e already existente në koleksion, e cila është e lidhur me çelësin e specifikuar, ose krijojnë një regjistrim të ri nëse nuk është gjetur çelësi.
- Janë shtuar mbështetje për funksionin RegExp.escape, që ekranohet simbollet speciale në stringje për përdorim të sigurt si një model brenda shprehjeve të rregullta, të vendosura përmes ndërtuesit RegExp().
- ĂfarĂ«do ndryshimesh tĂ« konfigurimeve tĂ« parazgjedhura:
- Parametri rootDir tani tregon në dosjen aktuale «.» ku është vendosur skedari i konfiguracionit tsconfig.json, dhe jo në dosjen standarde me kodin burimor.
- Fusha «types» në tsconfig.json tani definohet si «[]» në vend të «[«*»]», që do të thotë se TypeScript tashmë nuk përfshin të gjitha paketat nga «node_modules/@types» si parazgjedhje dhe kërkon që paketat globale të specifikohen qartë (p.sh., [«node», «jest»])). Ky ndryshim çon në një reduktim të kohës së kompilimit nga 20-50%.
- Vlerësimi target tani përfshin versionin aktual ECMAScript (es2025). Në fushën target është shpallur versioni i vjetër es5 (ECMAScript 5), ndërsa si minimale është shpallur versioni es6 (ECMAScript 2015).
- Reformatimi i fortë është aktivizuar si parazgjedhje për kontroll të rreptë të llojeve.
- Parametri module parazgjedhur është vendosur në vlerën «esnext», që përfshin mbështetje për modulet JavaScript (ESM) me direktivat import dhe export, në vend të formatit të vjetër CommonJS.
- Për të përmirësuar performancën e kompilatorit, janë shpallur të vjetra:
- Opsioni «âbaseUrl».
- Përdorimi i fjalës kyçe module për të përcaktuar hapësirat e emrave të moduleve («module Foo { ⊠}» në vend të «namespace Foo { ⊠}»).
- Opsioni "âoutFile" (duhet tĂ« pĂ«rdoren paketues tĂ« jashtĂ«m si esbuild, Rollup, dhe Webpack);
- Modaliteti "âmoduleResolution: classic" (kĂ«shillohet tĂ« pĂ«rdoret nodenext ose bundler).
Burimi: opennet.ru
