Reference
Diagnostics
The preview pins stable TSCC code families, deterministic ordering and machine-friendly non-pretty output. Diagnostic stability is part of the contract, not incidental terminal formatting.
Code families
| Family | Purpose | Examples |
|---|---|---|
TSCC0001-0003 | CLI contract errors | unknown option, missing value, incompatible invocation |
TSCC1000 | Compiler errors | syntax, resolution and bounded semantic failures |
TSCC2000 | Warnings | non-fatal compiler findings |
TSCC3001 | Project configuration | unknown compilerOptions |
Non-pretty output
src/main.ts:3:24 - error TSCC1000: Type 'string' is not assignable to type 'number'.
const answer: number = "forty-two";
^^^^^^^^^^^ Non-pretty output has no ANSI escapes and retains file, line, column, source excerpt and caret. Diagnostics are sorted deterministically so repeat builds and CI logs are stable.
Path-specific structural errors
interface Config {
server: { port: number };
}
const config: Config = {
server: { port: "8080" }
}; Nested structural failures identify the relevant property path instead of collapsing the whole object into an anonymous incompatibility.
Callable errors
type Add = (left: number, right: number) => number;
const add: Add = (left, right) => left + right;
add(1); // arity diagnostic
add(1, "two"); // argument diagnostic Exit and emit behavior
- Unknown options and missing option values fail visibly with status 2.
- Default mode emits each successfully prepared file and returns failure when another file is invalid.
--noEmitOnErrorcommits no outputs when any input fails.--noEmitperforms compilation and diagnostics without writing outputs.
Known boundary: individual outputs are staged before rename, but a multi-file rename sequence is not a filesystem transaction.