偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Node.js 官方發(fā)布新工具,助力穩(wěn)定 TypeScript 支持!

開發(fā) 前端
Node.js 和 TypeScript 的整合已經(jīng)邁出關(guān)鍵一步。Amaro 讓“直接用 Node 跑 TS”變得可行。未來開發(fā)時,.js? 和 .ts 之間的區(qū)別會越來越小,開發(fā)方式會更加統(tǒng)一、高效,也更安全。?

在現(xiàn)代前端工程體系中,TypeScript 已成為開發(fā)者提高代碼可維護性、可讀性和團隊協(xié)作效率的重要利器。然而,長期以來,Node.js 對 TypeScript 的支持卻遠遠跟不上,這種不對稱的現(xiàn)狀給廣大開發(fā)者帶來了諸多痛點。

6 月 10 日,Node.js 官方發(fā)布了 Amaro 1.0,這是 Node.js 官方的 TypeScript “類型剝除加載器”,可以讓開發(fā)者直接在 Node.js 中運行 .ts 文件,不需要先轉(zhuǎn)成 .js。

Node.js 對 TS 的支持問題

雖然 TypeScript 的使用越來越普遍,很多大項目已經(jīng)默認使用,但在 Node.js 中直接運行 .ts 文件一直不容易:

  • 缺乏原生支持:開發(fā)者不得不依賴如 ts-node、tsx 等工具進行運行時編譯。
  • 啟動慢、調(diào)試復(fù)雜:這些工具通常帶有一定的啟動成本,并增加了調(diào)試配置的復(fù)雜度。
  • 生態(tài)割裂:當 Node 核心本身不支持 TS 時,整個開發(fā)工具鏈難以形成統(tǒng)一的開發(fā)體驗。

而與此同時,TypeScript 版本快速演進,語言能力不斷增強,與 Node.js 的支持進度產(chǎn)生嚴重錯位,成為社區(qū)長期關(guān)注的“短板”。

Node.js 開始支持 TS的過程

Node.js 團隊逐步意識到原生支持 TypeScript 的必要性,從 2024 年起開始改進:

  • 2024 年 6 月(Node v22.6):引入 --experimental-strip-types標志,首次實現(xiàn)對 TypeScript 類型注釋的移除,可直接運行簡單 TS 文件。
  • 2024 年 7 月(Node v22.7):加入 --experimental-transform-types標志,開始支持如 enum、namespace 等需要代碼轉(zhuǎn)換的語法。
  • 2025 年 3 月(Node v23.6):默認開啟類型剝除,.ts 文件可以直接運行,不用加任何參數(shù)。

Amaro 1.0:打通 TS 支持最后一公里

6 月 10 日,Node.js 推出 Amaro 1.0,這意味著 TypeScript 的原生支持終于要穩(wěn)定了!

Amaro 是用 Rust 寫的,并通過 WebAssembly 在 Node.js 中運行的 類型剝除加載器。它的主要功能有:

  • 極速性能:基于 SWC 引擎,運行快速,占用資源小。
  • 有兩種模式:

     a.strip-types:只移除類型,不轉(zhuǎn)換語法(適用于常見場景)

     b.transform-types:轉(zhuǎn)換復(fù)雜語法,如枚舉、命名空間等。

  • 支持依賴剝除:可用于剝除 node_modules 中的 .ts 文件,適合 monorepo 項目。
  • 版本獨立更新:Amaro 作為單獨模塊存在,可獨立于 Node.js 升級。

類型剝離:在轉(zhuǎn)譯過程中從 TypeScript 代碼中刪除類型注釋,使其能夠直接在 JavaScript 環(huán)境中運行。

Node.js vs Bun vs Deno

在現(xiàn)代 JavaScript 運行時中,Bun 與 Deno 都提供了對 TypeScript 的原生支持,但它們與 Node.js + Amaro 的實現(xiàn)方式有 明顯差異:

  • Node.js:

     a.支持方式:通過 Amaro 實現(xiàn)“類型剝離”,只移除 .ts 文件中的類型注釋,不執(zhí)行完整 TypeScript 編譯。

     b.局限:僅支持 TS 的“語法超集”部分,不支持完整的 TS 類型檢查或語義分析,需要搭配 IDE 或構(gòu)建工具單獨做類型檢查。

  • Bun:

     a.支持方式:使用自己的 超快速 TS 編譯器,內(nèi)置 TypeScript 支持,可以直接運行 .ts 和 .tsx。

     b.優(yōu)勢:無需配置直接支持 TS,支持 TS 語言大部分語法和類型語義,效果近似于 tsc。

  • Deno:

     a.支持方式:直接以 TypeScript 作為一等公民語言,從開始就支持 TS。內(nèi)部使用 swc 做 TS 編譯,提供強類型校驗。

     b.優(yōu)勢:.ts、.tsx 無需配置可直接運行,支持類型檢查與運行分離,靈活性好。

Node.js 選擇“類型剝離”這種方式,是為了保留現(xiàn)有生態(tài)的兼容性,代價更?。籅un 和 Deno 是從底層支持 TS,功能更全。對于傳統(tǒng) Node 項目,Amaro 是更穩(wěn)妥的方案。如果想要更先進的開發(fā)體驗,Bun 和 Deno 可能更適合。

未來展望

Node.js 和 TypeScript 的整合已經(jīng)邁出關(guān)鍵一步。Amaro 讓“直接用 Node 跑 TS”變得可行。未來開發(fā)時,.js 和 .ts 之間的區(qū)別會越來越小,開發(fā)方式會更加統(tǒng)一、高效,也更安全。

責任編輯:武曉燕 來源: 前端充電寶
相關(guān)推薦

2011-12-05 09:39:57

Node.js

2012-07-12 10:15:15

Node.js

2024-08-28 08:33:15

2023-11-16 14:56:13

2015-06-23 15:27:53

HproseNode.js

2024-07-30 15:02:44

2011-11-08 10:53:02

Node.js

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2011-05-24 15:09:11

NodeJS

2023-04-19 08:31:57

Node.jsLTS版本

2013-03-08 09:54:00

BAENode.js百度云

2023-08-29 09:43:21

Node.js.env

2016-04-27 12:47:27

Node.js6.0版本

2019-05-05 11:47:09

TypeScript開發(fā)Node.js

2019-07-09 14:50:15

Node.js前端工具

2014-02-19 16:28:53

Node.jsWeb工具

2021-01-18 09:43:58

Node.js前端服務(wù)端

2011-09-08 13:46:14

node.js

2011-11-01 10:30:36

Node.js
點贊
收藏

51CTO技術(shù)棧公眾號