本頁譯自英文文件。指令、識別名稱與範例保持原樣。執行環境 7.24.4 · SDK 2.6.7。 英文原文
TypeScript 原生支援
狀態:原始碼中有效;封裝執行環境發行尚待完成 範圍:現行原始碼工具鏈與語言服務 上次審閱:2026-09-14 負責人:AX Code 維護者
AX Code 使用官方、以 Go 實作的 TypeScript 7.0.2 編譯器,用於工作區
檢查、SDK 產生,以及內建的 JavaScript/TypeScript 語言伺服器。
語言伺服器以
--lsp --stdio 直接執行隨附的原生可執行檔。它不會呼叫登錄表執行器,也不會下載浮動的
語言伺服器版本。使用 AX Code 不需要 Go 工具鏈。
以 pnpm install 安裝相依,包含選用相依。
原生編譯器需要相符的作業系統與 CPU 套件。獨立建置會在交付前
準備並驗證該套件。遺失或不符的二進位檔會產生
可操作的錯誤,而不是默默啟動 JavaScript 伺服器。
編譯器 API 相容性
工作區把 @typescript/native 釘在 npm:typescript@7.0.2,並讓
typescript 別名指向 npm:@typescript/typescript6@6.0.2,供匯入
舊式 JavaScript Compiler API 的工具使用。型別檢查與 SDK 產生使用原生
編譯器。相容性 API 不是預設的語言伺服器。
Vue、Svelte 與 Astro 的框架工具使用自己的伺服器整合; TypeScript 程式庫相容並不代表支援編譯器外掛。 SolidJS 的 JSX 轉換仍透過 Babel。執行環境測試與產生的 產物必須獨立於成功的型別檢查而通過。
診斷與記憶體
原生 TypeScript 使用拉取式診斷。當呼叫端 要求等待診斷,或收集診斷清冊時,AX Code 才會請求它們。只同步 一個檔案並不會等待型別檢查。編輯會使相依的快取結果失效;過時、待處理或失敗的 清冊,會被彙總診斷 API 回報為部分或降級。 成功的拉取會重新整理該檔案。伺服器重新整理請求會把快取結果標成 過時;下一次診斷請求會依需求重新整理。背景伺服器 流量不會延長閒置壽命。檔案編輯仍可在背景重新整理先前 請求過的文件。原始紀錄 API 會在有界的收集預算內重新整理過時 結果,並拒絕不完整的清冊; 編輯工具會揭露這個狀況,而不會失去已成功的檔案編輯。 其他語言伺服器保留 既有的推送式診斷行為。
對同一檔案重疊的明確診斷等待,只在 同一工作區世代內共用一個請求。循序請求仍會重新整理; 工作區變更會阻止重用較舊、仍在進行的請求。背景與 清冊重新整理會在等待文件鎖之後重新檢查新鮮度。
成功的修補刪除與移動,會在語言服務中關閉被移除的原始文件。 失敗的修補交易會保留文件狀態。清理有共用的 兩秒期限,並略過同一修補中較晚操作重新建立的路徑。 不完整的清理會被揭露,而不會復原已儲存的編輯。若送到 伺服器逾時,診斷會保持不完整,直到該用戶端重新啟動。
閒置的語言伺服器在一般記憶體
設定檔下於 30 分鐘後回收,或在有 AX_CODE_MEMORY_PROFILE=low 時於五分鐘後回收。回收執行於
既有的一分鐘健康檢查間隔,並等待作用中與排隊
請求安定。伺服器依需求重新啟動。AX_CODE_LSP_IDLE_MS 以毫秒
覆寫閒置時間;0 停用閒置回收。無效值
使用設定檔預設。這些設定不施加行程 RAM 上限,也不施加
整機預算。推測性預熱仍是選擇加入。
回收伺服器會捨棄其診斷清冊。彙總結果會保持 標成降級,直到先前開啟的文件已重新開啟並檢查, 或被明確移除。原始清冊 API 會拒絕不完整的涵蓋。 涵蓋帳冊限制為 2,000 條路徑;溢位會保守地保持 不完整,直到專案實例被處置。回收空的伺服器 不會失去涵蓋。編輯工具會保留已儲存的 變更,並揭露診斷不完整。使用完整的專案型別 檢查,來確定專案是否乾淨。
原生編譯並不保證特定的常駐記憶體減少。 在提出記憶體宣稱之前,請比較相同專案、開啟的文件、請求與行程樹 RSS。
明確的伺服器覆寫
既有且受信任的 lsp.typescript.command 設定仍會覆寫
內建的原生伺服器。若要使用舊式伺服器,請在專案中安裝並釘選伺服器及其
相容的 TypeScript SDK,然後把 command 設為該已安裝的
可執行檔,方式是 --stdio。避免未釘選的 npx 指令。覆寫是明確的;
當原生編譯器不可用時,AX Code 不會自動備援。
上游:TypeScript 7 公告。
TypeScript 7.0.2 已儲存文件相容性
原生 7.0.2 伺服器在檔案監視 流量與已儲存編輯重疊時,可能回傳較早的診斷快照。AX Code 會在請求診斷之前,針對 那個確切的伺服器版本關閉並重新開啟已變更的文件。一次有界的文件 查詢會在重新開啟前沖掉延遲的關閉;其他查詢會等待這次 替換。這會送出完整的已變更文件;未變更的文件仍重用重疊的請求。其他 伺服器版本保持它們協商好的同步模式。被中斷的 替換會保持不完整,直到語言伺服器重新啟動。