Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SASS VUE GEN AI SCIPY CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING BASH RUST

TypeScript Configuration


Introduction

The tsconfig.json file is the heart of every TypeScript project.

It tells the TypeScript compiler how to process your code, which files to include, and which features to enable or disable.

A well-configured tsconfig.json ensures a smooth developer experience and reliable builds.


Key Concepts & Explanations

  • compilerOptions: Controls how TypeScript compiles your code (e.g., target, module, strictness).
  • include: Files or folders to include in the compilation.
  • exclude: Files or folders to exclude.
  • files: Explicit list of files to include (rarely used with include).
  • extends: Inherit options from another config file.
  • references: Enable project references for monorepos or multi-package setups.

Step-by-Step Examples

Minimal tsconfig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs"
  },
  "include": ["src/**/*"]
}

Advanced tsconfig.json

{
  "compilerOptions": {
    "target": "es2020",
    "module": "esnext",
    "strict": true,
    "baseUrl": ".",
    "paths": {
      "@app/*": ["src/app/*"]
    },
    "outDir": "dist",
    "esModuleInterop": true
  },
  "include": ["src"],
  "exclude": ["node_modules", "dist"]
}

To generate a tsconfig.json file, run:

tsc --init


Real-World Scenarios

  • Monorepo: Use references and extends to share settings across packages.
  • Library: Set declaration and outDir for type definitions.
  • App: Use strict and esModuleInterop for best compatibility.

Common Pitfalls & Troubleshooting

  • Misconfigured include/exclude can cause files to be missed or included unexpectedly.
  • Paths not resolving? Check baseUrl and paths settings.
  • Type errors after changing strict? Review your code for type safety.

Best Practices

  • Always enable strict for safer code.
  • Use extends to avoid duplicating config in monorepos or multiple projects.
  • Do not commit build output folders (like dist) to version control.



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.