LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

tsc-rs

Rust port of the TypeScript 7 compiler

TLDR

Type-check a project from `tsconfig.json`
$ npx tsc-rs -p [tsconfig.json]
copy
Type-check without emitting JavaScript
$ npx tsc-rs --noEmit
copy
Compile in watch mode
$ npx tsc-rs -w
copy
Build a project-references graph
$ npx tsc-rs -b
copy
Print the TypeScript version this binary ports
$ npx tsc-rs --version
copy
Show help (same flags as `tsc`)
$ npx tsc-rs --help
copy

SYNOPSIS

tsc-rs [options] [file...]

DESCRIPTION

tsc-rs is a Rust port of Microsoft's native TypeScript 7 compiler (the Go `tsc` / former typescript-go). It keeps that compiler's algorithms and command line, so flags match tsc. The npm package is named tsc-rs so it does not clash with typescript.Install with `npm install -D tsc-rs` and run `npx tsc-rs`. Releases also ship a standalone archive per platform: a `tsc` binary with the `lib` files beside it. Linux x64 (static) and macOS arm64 are published; Windows and Linux arm64 are not.When `compilerOptions.plugins` includes `@effect/language-service`, tsc-rs runs Effect diagnostics (codes 377xxx) in the same check. The rules follow Effect-TS/tsgo 0.46.1. Editor-only language-service features (quick fixes, refactors, hover, completions) are not ported.`--version` prints the TypeScript version the port tracks (for example 7.1.0-dev), which is what `typesVersions` is matched against.

PARAMETERS

-p, --project path

Compile the project described by `tsconfig.json` at path
-b, --build
Build the project-references graph (same as `tsc -b`)
-w, --watch
Watch input files and recompile on changes
-t, --target version
ECMAScript target version
--outDir directory
Redirect emit output to directory
--strict
Enable all strict type-checking options
--noEmit
Type-check only; do not write JavaScript
--sourceMap
Generate `.map` source map files
--declaration
Generate `.d.ts` declaration files
--incremental
Enable incremental compilation
--init
Write a `tsconfig.json`
-h, --help
Show help
--version
Print the TypeScript version this port is pinned to (not the npm package version)

CAVEATS

This is an early release. In some monorepos a workspace package is reachable both through `nodemodules` and a direct import; **tsc-rs** may emit extra files and report TS6059 for them. With `tsc -b`, a project that imports another project's output without a project reference can see stale or missing modules (TS2305 / TS2307); add the reference. `tsc -b --watch` can stop with an internal error (exit 70) after some edits. The VS Code TypeScript 7 extension looks for the `typescript` package, so point `js/ts.tsdk.path` at the platform package's `lib` directory (for example `nodemodules/@tsc-rs/linux-x64/lib`).

HISTORY

ts-rust (the tsc-rs CLI) is an experimental port of TypeScript 7 to Rust, published by pingdotgg. It is pinned to a microsoft/TypeScript revision (formerly typescript-go) and compared against that Go compiler.

SEE ALSO

tsc(1), node(1), npm(1), bun(1), esbuild(1), swc(1), rustc(1)

RESOURCES

Copied to clipboard
Kai