TypeScript config

tsconfig Validator Playground

Paste a tsconfig, keep JSONC comments and trailing commas, then review compilerOptions, strictness, module targets and preset drift before the config lands in code.

  • Input stays in the browser
  • JSONC-friendly parser
  • App, Library, Node, React, Strict

Validate and explain tsconfig

Choose a preset, edit the JSONC config and inspect diagnostics, preset differences and a recommended snippet.

98/100

Modern app baseline for Vite, Angular, webpack and similar bundler pipelines.

tsconfig.json / JSONC input

Review result

Clean for the curated rules

Errors
0
Warnings
0
Info
1
InfoskipLibCheck is a speed tradeoff

Skipping declaration checks can keep builds fast but may hide dependency type conflicts.

Keep it explicit and revisit it when debugging dependency type drift.compilerOptions.skipLibCheck

What this playground checks

Strictness and explicit contracts

strict and noImplicitAny catch the most common hidden type-safety drift. The playground treats missing or disabled strictness as a review signal, not as a universal verdict.

module, target and resolution

Modern apps, Node services and packages need different moduleResolution choices. The evaluator flags legacy resolution and NodeNext mismatches before they become runtime surprises.

paths, baseUrl and runtime alignment

TypeScript paths do not configure bundlers, tests or Node by themselves. The page marks aliases as an integration note so reviewers know what else must be aligned.

tsconfig decisions connect to parsing, linting, formatting and schema contracts. These neighboring tools cover the next layer of the same review workflow.

FAQ

Does this run tsc --showConfig?

No. The MVP is a browser-only JSONC validator and explainer. It does not read the filesystem, resolve extends or run the TypeScript compiler on a project graph.

Are comments and trailing commas supported?

Yes. The parser accepts common JSONC tsconfig syntax, including comments and trailing commas, then reports controlled parse diagnostics for invalid input.

Why does extends show as an info diagnostic?

An extended tsconfig can change compilerOptions, but this public page has no access to repository files. The info diagnostic keeps that boundary visible.

Is skipLibCheck always wrong?

No. skipLibCheck is treated as a speed and maintenance tradeoff. The playground marks it as information so teams revisit it during dependency or declaration issues.