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 runs full type diagnostics against a project, then filters the results to only include errors in 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.

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 — Must be installed as a dependency (direct or peer) in the workspace.
  • 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. Parse config — Read and parse the TypeScript configuration.
  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 — Keep only diagnostics from files owned by your project, excluding anything in node_modules.
  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 project-owned type errors are found. CI pipelines that use this command will fail the step on type errors.

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 — The command requires TypeScript as a dependency. Run npm install typescript if it is missing.
  • 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.