Skip to main content

Type Check

Run full TypeScript type checking while filtering diagnostics to only project-owned files, keeping strict configs practical in real-world projects.

Summary

The type-check command validates the project's TSConfig, runs full type diagnostics, and filters source-file errors to files owned by the project.

Third-party diagnostics (from node_modules) are excluded so that skipLibCheck: false can be used without surfacing errors in dependencies the project maintainer cannot control.

TSConfig syntax errors and invalid compiler options are always reported. They describe the project configuration itself, so the source-file filter never suppresses them.

Strict Without the Noise

Setting skipLibCheck: false in a TSConfig preset catches more bugs, but it also surfaces errors inside third-party packages. This command gives you the strictness without the noise.

Why Use This Command?

  • Catch type errors in project code that skipLibCheck: true would normally hide.
  • Keep skipLibCheck: false in shared TSConfig presets without blocking CI on third-party issues.
  • Produce clear, file-scoped diagnostics with line and column numbers for quick navigation.
  • Replace manual tsc --noEmit invocations that may report uncontrollable errors.

Use Cases

  • Monorepo maintenance — Run type checks per workspace with each workspace's own tsconfig.json.
  • CI/CD pipelines — Add a type-check step that exits with code 1 on project errors while ignoring dependency noise.
  • Strict TSConfig adoption — Migrate from skipLibCheck: true to false incrementally by surfacing only your own errors.
  • Pre-commit checks — Confirm type safety before committing without waiting for a full build.

Requirements

  • Node.js runtime — Use any Node.js LTS release with either the installed nova CLI or npx.
  • TypeScript 6 — Install the supported compiler as a dependency (direct or peer) in the workspace. See TypeScript Compatibility.
  • tsconfig.json — A valid TypeScript configuration file must exist in the workspace (or be specified with --project).

Usage

You can run this command in two ways:

Options

FlagDescription
-p, --project <path>Path to tsconfig.json.

When --project is omitted, the command searches for tsconfig.json starting from the current working directory.

How It Works

  1. Resolve config — Locate the tsconfig.json file from --project or by searching from the current directory.
  2. Validate config — Read and parse the TypeScript configuration, reporting malformed JSON and invalid compiler options immediately.
  3. Set up the type-checker — Prepare the full TypeScript project from the parsed file list and compiler options.
  4. Collect diagnostics — Gather all type errors across the project, including those inside node_modules.
  5. Filter source diagnostics — Keep source-file diagnostics owned by your project, exclude source diagnostics in node_modules, and retain every configuration diagnostic.
  6. Report — Print each error with file path, line, column, and message, then exit with code 1 if any errors remain.

Non-Zero Exit Code

The command exits with code 1 when the TSConfig is invalid or project-owned type errors are found. CI pipelines that use this command will fail the step on either problem.

Examples

Troubleshooting

  • No tsconfig.json found — Confirm a tsconfig.json exists in the current directory, or pass the correct path with --project.
  • TypeScript not installed or unsupported — Install the supported compiler with npm install --save-dev [email protected].
  • Invalid TSConfig but no source location — Compiler-option diagnostics can apply to the whole tsconfig.json, so TypeScript may report the message without a source line and column.
  • Zero errors but build fails — This command only checks types; build errors from bundlers or other tools are not covered.
  • Errors in generated files — If generated files (e.g., .docusaurus) appear in diagnostics, add them to the exclude array in your tsconfig.json.