首頁 > web前端 > js教程 > Node.js v:內建 TypeScript 支援終於來了

Node.js v:內建 TypeScript 支援終於來了

Barbara Streisand
發布: 2025-01-10 07:45:40
原創
669 人瀏覽過

Node.js v: Built-in TypeScript Support is Finally Here

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 專案部署到雲端的首選。

Node.js v: Built-in TypeScript Support is Finally Here

Leapcell 是用於 Web 託管、非同步任務和 Redis 的下一代無伺服器平台:

多語言支援

  • 使用 Node.js、Python、Go 或 Rust 進行開發。

免費部署無限個專案

  • 只需支付使用費用-無請求,不收費。

無與倫比的成本效率

  • 即用即付,無閒置費用。
  • 範例:25 美元支援 694 萬個請求,平均回應時間為 60 毫秒。

簡化的開發者體驗

  • 直覺的使用者介面,輕鬆設定。
  • 完全自動化的 CI/CD 管道和 GitOps 整合。
  • 即時指標和日誌記錄以獲取可行的見解。

輕鬆的可擴充性和高效能

  • 自動擴展,輕鬆處理高並發。
  • 零營運開銷 - 只需專注於建置。

在文件中探索更多內容!

Node.js v: Built-in TypeScript Support is Finally Here

在 X 上追蹤我們:@LeapcellHQ


閱讀我們的部落格

以上是Node.js v:內建 TypeScript 支援終於來了的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板