microsoft/TypeScript 本体へマージされ、このリポジトリ自体はクローズ予定の“staging repo”。internal/ 配下に Go で実装):
scanner / parser / binder / checker …パーサ〜型チェッカ一式transformers / printer / sourcemap …JS 出力・宣言ファイル出力module / modulespecifiers / tsoptions …モジュール解決、tsconfig.jsonlsp / ls / project …Language Server 実装api / jsonrpc …外部 APIcmd/tsgo(CLI。tsgo / tsgo --lsp / tsgo --api の3モード)_packages/native-preview(@typescript/native-preview として npm 配布)_extension(VS Code 拡張 “TypeScript (Native Preview)”)README の機能対応表でも「TS 6.0 と同じ構文エラー/同じ型/同じメッセージ」と明記しており、振る舞い互換のドロップイン置換を目指している点が最大の差。.d.ts 出力、tsconfig の project references などには対応していない。typescript-go は 型チェック・宣言ファイル生成・LSP まで含むフルスタックの正式な TypeScript 実装で、単なるトランスパイラではない。tsgo --lsp) と VS Code 拡張が同梱されており、tsserver(Node 実装)を置き換える形で 補完・ホバー・診断のレイテンシを削減できる。制約:現時点は preview。CHANGES.md にある通り JSDoc 周りなど一部仕様は意図的に簡素化されており、API・Watch モードなどは “in progress / prototype” ステータス。
npm install @typescript/native-preview
npx tsgo # tsc と同じ感覚で呼ぶ
npx tsgo -p tsconfig.json
npx tsgo --lsp # LSP サーバとして起動
{ "js/ts.experimental.useTsgo": true }
を追加すると、組み込みの tsserver の代わりに tsgo の LSP が言語サービスを担当。
cmd/tsgo/main.go → internal/execute.CommandLine が CLI エントリ。引数を tsoptions で解析し、compiler パッケージでプログラム生成 → checker で型検査 → transformers/printer で JS/.d.ts を出力、という本家 tsc と対応するパイプライン。go build ./cmd/tsgo で CLI をビルド。タスクランナーは Herebyfile.mjs(hereby)。_submodules/TypeScript を参照しつつ testdata/ / internal/testrunner で実行(baseline 比較方式)。CHANGES.md に列挙(Closure 系 JSDoc 削除など)。バグ報告は README の “done / in progress / prototype / not ready” ステータスを確認してから行う運用。要約すると、「tsc の完全互換をうたう高速ネイティブ実装 + LSP」を段階的に仕上げるためのモノレポで、ユーザーは npx tsgo や VS Code 拡張経由でそのまま試せる、という位置づけ。