TypeScript 6.0, nejnovější verze s kompilátorem JavaScriptu, je nyní k dispozici.

Společnost Microsoft vydala TypeScript 6.0, jazyk pro vývoj webových aplikací, který rozšiřuje možnosti JavaScriptu a souvisejících nástrojů. Kód kompilátoru, který překládá kód TypeScript do JavaScriptu, je licencován pod licencí Apache 2.0 a vývoj probíhá ve veřejném repozitáři na GitHubu. Specifikace jazyka jsou otevřené a publikované v rámci dohody Open Web Foundation Specification Agreement.

Jazyk TypeScript rozšiřuje možnosti JavaScriptu a zároveň zůstává plně zpětně kompatibilní, což zjednodušuje migraci stávajících aplikací na TypeScript. Výsledná aplikace TypeScript se kompiluje do prostého JavaScriptu, který lze spustit v jakémkoli moderním webovém prohlížeči nebo použít s Node.js, Bun a Deno. Stávající knihovny JavaScriptu lze použít v programech TypeScript. TypeScript se od JavaScriptu liší svými explicitními možnostmi definice typů a podporou plnohodnotných tříd. Statické typování pomáhá vyhnout se mnoha chybám při vývoji, umožňuje další optimalizační techniky, zjednodušuje ladění a usnadňuje čitelnost kódu a jeho snadnější vylepšování a údržbu.

TypeScript 6.0 je označen jako poslední verze dodávaná s kompilátorem TypeScript, který překládá do JavaScriptu. S TypeScript 7.0 projekt přejde na nový kompilátor typescript-go (tsgo), který je vyvíjen od roku 2024 s použitím jazyka Go. Nový kompilátor výrazně zvýší rychlost sestavování, sníží spotřebu paměti a zkrátí dobu spouštění editoru, čímž řeší aktuální problémy se škálováním při použití ve velmi rozsáhlých projektech. Bude také k dispozici kompaktní sada nástrojů pro příkazový řádek, která umožní rychlou kompilaci kódu a kontroly správnosti.

Větev TypeScript 6.x se i nadále dodává se starým kompilátorem, ale obsahuje i některé změny pro přípravu na migraci na novou implementaci. Verze TypeScript 6.0 je navržena jako most mezi TypeScript 5.9 a 7.0 a obsahuje změny primárně zaměřené na zjednodušení budoucího přechodu na TypeScript 7.0. Pro testování je k dispozici náhledová verze TypeScript 7.0, publikovaná jako doplněk VSCode a balíček NPM. Po vydání TypeScript 7.0 budou větve 6.x a 7.x existovat koexistence a budou udržovány paralelně, dokud TypeScript 7.x nedosáhne zralosti, kdy bude schopen zcela nahradit staré nástroje.

Mezi změny v TypeScriptu 6.0 patří:

  • Implementována možnost použití prefixů „#/“ ve stylu Node.js pro import aliasů modulů definovaných v balíčku namísto zadávání relativních cest. Například „import * as utils from „#root/utils.js““ místo „import * as utils from „../../utils.js“.
  • Byl přidán příznak „--stableTypeOrdering“, který v kompilátoru povoluje deterministický algoritmus řazení typů používaný v TypeScriptu 7, což zaručuje stejné řazení typů ve všech prostředích. Tato možnost se doporučuje pouze pro řešení potenciálních problémů před migrací na TypeScript 7, protože její povolení v TypeScriptu 6.0 může zpomalit kompilátor až o 25 %.
  • Pro rozhraní Temporal API byly implementovány vestavěné typy, které poskytují alternativní metody pro práci s daty a časy, což umožňuje manipulovat s daty s ohledem na časová pásma i bez ohledu na ně, převádět časy, formátovat výstup a provádět aritmetické operace s časy.
  • Přidány typy pro metody upsert getOrInsert a getOrInsertComputed v objektech Map a WeakMap, které vracejí hodnotu, která se již nachází v kolekci přidružené k zadanému klíči, nebo vytvářejí novou položku, pokud klíč není nalezen.
  • Přidána podpora pro funkci RegExp.escape, která escapuje speciální znaky v řetězcích pro jejich bezpečné použití jako vzor v rámci regulárních výrazů zadaných pomocí konstruktoru RegExp().
  • Výchozí nastavení byla změněna:
    • Parametr rootDir nyní odkazuje na aktuální adresář ".", kde se nachází konfigurační soubor tsconfig.json, nikoli na výchozí adresář se zdrojovým kódem.
    • Pole „types“ v souboru tsconfig.json je nyní definováno jako „[]“ místo „[“*“], což znamená, že TypeScript již standardně nezahrnuje všechny balíčky z „node_modules/@types“ a vyžaduje explicitní zadání globálních balíčků (např. [„node“, „jest“]). Tato změna zkracuje dobu kompilace o 20–50 %.
    • Cílová hodnota nyní zahrnuje aktuální verzi ECMAScript (es2025). Pole tagret nyní označuje es5 (ECMAScript 5) jako zastaralou a deklaruje es6 (ECMAScript 2015) jako minimální verzi.
    • Ve výchozím nastavení je pro striktní kontrolu typů povolen striktní režim.
    • Parametr module je ve výchozím nastavení nastaven na „esnext“, což umožňuje podporu modulů JavaScript (ESM) s direktivami importu a exportu namísto staršího formátu CommonJS.
  • Pro zlepšení výkonu kompilátoru byly zastaralé následující:
    • Možnost „--baseUrl“.
    • Použití klíčového slova module k definování jmenných prostorů modulů („module Foo { … }“ místo „namespace Foo { … }“).
    • Volba „--outFile“ (měla by se používat externí balíčkovací programy, jako například esbuild, Rollup a Webpack);
    • Režim „--moduleResolution: classic“ (doporučeno nodenext nebo bundler).

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster