Node.js v:內建 TypeScript 支援終於來了
Node.js v23.6.0 最近發布了,它帶來了一個重大更新:--experimental-strip-types 的取消標記。這意味著 Node.js 現在可以原生運行 TypeScript 文件,無需任何額外配置。
為什麼 TypeScript 很重要
TypeScript 透過引入可選的靜態類型和高級功能(例如介面、泛型和類型推斷)來增強 JavaScript。多年來,它已經成為大規模 JavaScript 應用程式的事實上的標準。透過與 Node.js 的集成,後端開發人員可以更輕鬆地存取 TypeScript。
在 Node.js 中執行 TypeScript
要在 Node.js 中執行 TypeScript 文件,只要執行:
node index.ts
除了 .ts 文件之外,Node.js 還支援 .mts 和 .cts 文件,但不支援 .tsx。
Node.js 如何執行 TypeScript
Node.js 使用 swc 版本來移除型別註釋,留下可以執行的純 JavaScript 程式碼。
在 Node.js 中執行 TypeScript 的注意事項
本機導入必須引用 TypeScript 文件
在沒有捆綁程式的環境中使用 TypeScript 時,您可能之前編寫如下導入:
import { myFunction } from './my-module.js';
而不是來自“./my-module.ts”
這是為什麼呢? TypeScript 編譯器不會修改「./my-module.js」等模組擴展,因此開發人員必須使用與轉譯的 JavaScript 輸出一致的擴展。
但是,由於 Node.js 使用檔案副檔名來決定模組類型,因此您必須在匯入中明確引用 TypeScript 檔案:
import { myFunction } from './my-module.ts';
此變更是必要的,因為 Node.js 依賴檔案副檔名來決定模組類型。相較之下,TypeScript 編譯器之前保留了「./my-module.js」等模組說明符不變,要求開發人員適應轉譯的輸出。
沒有內建類型檢查
Node.js 在執行 TypeScript 檔案時不執行型別檢查。為了確保類型安全,您需要在本機上執行 TypeScript 編譯器 (tsc) 或類似工具,例如:
tsc --watch
此外,正確配置 tsconfig.json 對於類型檢查和編碼之間的一致性至關重要:
node index.ts
- allowImportingTsExtensions: 允許直接匯入 .ts 文件,而不是匯入 .js。
- rewriteRelativeImportExtensions: 將 .ts 檔案的相對導入重寫為 .js 檔案的相對導入。
- verbatimModuleSyntax: 如果我們在匯入類型時不使用 type 關鍵字,則會發出警告。
必須使用 type 關鍵字來匯入類型
匯入類型時需要 type 關鍵字 - 否則類型剝離不會刪除它們。
import { myFunction } from './my-module.js';
在 Node.js 中執行 TypeScript 的限制
不支援非 JavaScript 語言功能
不支援某些特定於 TypeScript 的功能,包括:
- 枚舉
- 命名空間
- 類別建構子中的參數屬性
要啟用這些功能,您可以新增 --experimental-transform-types 標誌。
不支援 TypeScript 帶來的未來 JavaScript 功能
TypeScript 允許透過轉譯在目前 JavaScript 引擎上執行即將推出的 JavaScript 功能(例如裝飾器)。
但是,由於 Node.js 僅剝離 TypeScript 類型,因此不支援此類功能。
較舊的 Node.js 版本可以運行 TypeScript 嗎?
根據 Marco on X 的說法,Node.js v22 將支援 TypeScript,但 v20 不會。
參考
- Node 對 TypeScript 的新內建支援
- Node.js 現在預設支援 TypeScript
我們是 Leapcell,是將 Node.js 專案部署到雲端的首選。
Leapcell 是用於 Web 託管、非同步任務和 Redis 的下一代無伺服器平台:
多語言支援
- 使用 Node.js、Python、Go 或 Rust 進行開發。
免費部署無限個專案
- 只需支付使用費用-無請求,不收費。
無與倫比的成本效率
- 即用即付,無閒置費用。
- 範例:25 美元支援 694 萬個請求,平均回應時間為 60 毫秒。
簡化的開發者體驗
- 直覺的使用者介面,輕鬆設定。
- 完全自動化的 CI/CD 管道和 GitOps 整合。
- 即時指標和日誌記錄以獲取可行的見解。
輕鬆的可擴充性和高效能
- 自動擴展,輕鬆處理高並發。
- 零營運開銷 - 只需專注於建置。
在文件中探索更多內容!
在 X 上追蹤我們:@LeapcellHQ
閱讀我們的部落格
以上是Node.js v:內建 TypeScript 支援終於來了的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...
