Node.js v23.6.0 最近發布了,它帶來了一個重大更新:--experimental-strip-types 的取消標記。這意味著 Node.js 現在可以原生運行 TypeScript 文件,無需任何額外配置。
TypeScript 透過引入可選的靜態類型和高級功能(例如介面、泛型和類型推斷)來增強 JavaScript。多年來,它已經成為大規模 JavaScript 應用程式的事實上的標準。透過與 Node.js 的集成,後端開發人員可以更輕鬆地存取 TypeScript。
要在 Node.js 中執行 TypeScript 文件,只要執行:
node index.ts
除了 .ts 文件之外,Node.js 還支援 .mts 和 .cts 文件,但不支援 .tsx。
Node.js 使用 swc 版本來移除型別註釋,留下可以執行的純 JavaScript 程式碼。
在沒有捆綁程式的環境中使用 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
匯入類型時需要 type 關鍵字 - 否則類型剝離不會刪除它們。
import { myFunction } from './my-module.js';
不支援某些特定於 TypeScript 的功能,包括:
要啟用這些功能,您可以新增 --experimental-transform-types 標誌。
TypeScript 允許透過轉譯在目前 JavaScript 引擎上執行即將推出的 JavaScript 功能(例如裝飾器)。
但是,由於 Node.js 僅剝離 TypeScript 類型,因此不支援此類功能。
根據 Marco on X 的說法,Node.js v22 將支援 TypeScript,但 v20 不會。
Leapcell 是用於 Web 託管、非同步任務和 Redis 的下一代無伺服器平台:
多語言支援
免費部署無限個專案
無與倫比的成本效率
簡化的開發者體驗
輕鬆的可擴充性和高效能
在文件中探索更多內容!
在 X 上追蹤我們:@LeapcellHQ
閱讀我們的部落格
以上是Node.js v:內建 TypeScript 支援終於來了的詳細內容。更多資訊請關注PHP中文網其他相關文章!