The typescript-go repository is a staging environment for developing a native port of TypeScript from JavaScript to Go. This project represents a significant undertaking to reimplement the TypeScript compiler and toolchain in Go, with the long-term goal of eventually merging this work into the main microsoft/typescript repository. The project is classified across multiple domains including TypeScript, Go, code generation, type bindings, interoperability, language integration, API generation, and cross-language tooling.
A preview build of this native TypeScript implementation is available on npm under the package name @typescript/native-preview, with the command-line tool named tsc for TypeScript 7.0 RC and later versions. The project also provides a preview VS Code extension available on the VS Code marketplace, allowing developers to test the native implementation within their editor by configuring appropriate settings.
The implementation status varies across different TypeScript features. Core functionality including program creation, parsing and scanning, command-line and tsconfig.json parsing, type resolution, type checking, JavaScript-specific inference, JSDoc support, JSX, declaration emit, JavaScript output emission, build mode with project references, and incremental builds are marked as complete. Watch mode is currently in prototype status, supporting file watching and rebuilding but lacking incremental rechecking and optimization. The language service implementation via LSP is actively in progress with nearly all features implemented. The public API surface is not yet ready for use.
This connection underscores the project's integration into Microsoft's larger development tooling infrastructure. The project explicitly welcomes contributions and maintains Microsoft's standard open source code of conduct and contributor license agreement requirements.
The project documentation includes a CHANGES.md file documenting intentional deviations from TypeScript 6.0 behavior. Given the staging nature of this repository and its planned eventual merger into the main TypeScript project, the issue tracker and repository are expected to eventually close once the native port reaches production readiness.