Was this page helpful?

tsc CLI Options

Using the CLI

Running tsc locally will compile the closest project defined by a tsconfig.json, you can compile a set of TypeScript files by passing in a glob of files you want.

sh
# Run a compile based on a backwards look through the fs for a tsconfig.json
tsc
# Emit JS for just the index.ts with the compiler defaults
tsc index.ts
# Emit JS for any .ts files in the folder src, with the default settings
tsc src/*.ts
# Emit files referenced in with the compiler settings from tsconfig.production.json
tsc --project tsconfig.production.json
# Emit d.ts files for a js file with showing compiler options which are booleans
tsc index.js --declaration --emitDeclarationOnly
# Emit a single .js file from two files via compiler options which take string arguments
tsc app.ts util.ts --target esnext --outfile index.js

Compiler Options

If you’re looking for more information about the compiler options in a tsconfig, check out the TSConfig Reference

CLI Commands

Flag Type
--all boolean

Show all compiler options.

--generateTrace string

Generates an event trace and a list of types.

--help boolean

Gives local information for help on the CLI.

--init boolean

Initializes a TypeScript project and creates a tsconfig.json file.

--listFilesOnly boolean

Print names of files that are part of the compilation and then stop processing.

--locale string

Set the language of the messaging from TypeScript. This does not affect emit.

--project string

Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.

--showConfig boolean

Print the final configuration instead of building.

--version boolean

Print the compiler's version.

Build Options

Flag Type
--build boolean

Build one or more projects and their dependencies, if out of date

--clean boolean

Delete the outputs of all projects.

--dry boolean

Show what would be built (or deleted, if specified with '--clean')

--force boolean

Build all projects, including those that appear to be up to date

--verbose boolean

Enable verbose logging

Watch Options

Flag Type
--excludeDirectories list

Remove a list of directories from the watch process.

--excludeFiles list

Remove a list of files from the watch mode's processing.

--fallbackPolling fixedPollingInterval, priorityPollingInterval, or dynamicPriorityPolling

Specify what approach the watcher should use if the system runs out of native file watchers.

--synchronousWatchDirectory boolean

Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.

--watch boolean

Watch input files.

--watchDirectory fixedPollingInterval, dynamicPriorityPolling, or useFsEvents

Specify how directories are watched on systems that lack recursive file-watching functionality.

--watchFile fixedPollingInterval, priorityPollingInterval, dynamicPriorityPolling, useFsEvents, or useFsEventsOnParentDirectory

Specify how the TypeScript watch mode works.

Compiler Flags

Flag Type Default
--allowJs boolean

false

Allow JavaScript files to be a part of your program. Use the checkJS option to get errors from these files.

--allowSyntheticDefaultImports boolean

module === "system" or esModuleInterop

Allow 'import x from y' when a module doesn't have a default export.

--allowUmdGlobalAccess boolean

false

Allow accessing UMD globals from modules.

--allowUnreachableCode boolean

undefined

Disable error reporting for unreachable code.

--allowUnusedLabels boolean

undefined

Disable error reporting for unused labels.

--alwaysStrict boolean

false, unless strict is set

Ensure 'use strict' is always emitted.

--assumeChangesOnlyAffectDirectDependencies boolean

Have recompiles in projects that use incremental and watch mode assume that changes within a file will only affect files directly depending on it.

--baseUrl string

Specify the base directory to resolve non-relative module names.

--charset string

utf8

No longer supported. In early versions, manually set the text encoding for reading files.

--checkJs boolean

false

Enable error reporting in type-checked JavaScript files.

--composite boolean

false

Enable constraints that allow a TypeScript project to be used with project references.

--declaration boolean

false, unless composite is set

Generate .d.ts files from TypeScript and JavaScript files in your project.

--declarationDir string

n/a

Specify the output directory for generated declaration files.

--declarationMap boolean

false

Create sourcemaps for d.ts files.

--diagnostics boolean

false

Output compiler performance information after building.

--disableReferencedProjectLoad boolean

Reduce the number of projects loaded automatically by TypeScript.

--disableSizeLimit boolean

false

Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.

--disableSolutionSearching boolean

Opt a project out of multi-project reference checking when editing.

--disableSourceOfProjectReferenceRedirect boolean

Disable preferring source files instead of declaration files when referencing composite projects

--downlevelIteration boolean

false

Emit more compliant, but verbose and less performant JavaScript for iteration.

--emitBOM boolean

false

Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.

--emitDeclarationOnly boolean

false

Only output d.ts files and not JavaScript files.

--emitDecoratorMetadata boolean

Emit design-type metadata for decorated declarations in source files.

--esModuleInterop boolean

false

Emit additional JavaScript to ease support for importing CommonJS modules. This enables allowSyntheticDefaultImports for type compatibility.

--exactOptionalPropertyTypes boolean

Differentiate between undefined and not present when type checking

--experimentalDecorators boolean

Enable experimental support for TC39 stage 2 draft decorators.

--explainFiles boolean

Print files read during the compilation including why it was included.

--extendedDiagnostics boolean

false

Output more detailed compiler performance information after building.

--forceConsistentCasingInFileNames boolean

false

Ensure that casing is correct in imports.

--generateCpuProfile string

profile.cpuprofile

Emit a v8 CPU profile of the compiler run for debugging.

--importHelpers boolean

false

Allow importing helper functions from tslib once per project, instead of including them per-file.

--importsNotUsedAsValues remove, preserve, or error

Specify emit/checking behavior for imports that are only used for types.

--incremental boolean

true if composite, false otherwise

Save .tsbuildinfo files to allow for incremental compilation of projects.

--inlineSourceMap boolean

false

Include sourcemap files inside the emitted JavaScript.

--inlineSources boolean

false

Include source code in the sourcemaps inside the emitted JavaScript.

--isolatedModules boolean

false

Ensure that each file can be safely transpiled without relying on other imports.

--jsx `react`, `react-jsx`, `react-jsxdev`, `react-native`, or `preserve`

undefined

Specify what JSX code is generated.

--jsxFactory string

React.createElement

Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'

--jsxFragmentFactory string

Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.

--jsxImportSource string

react

Specify module specifier used to import the JSX factory functions when using jsx: react-jsx*.`

--keyofStringsOnly boolean

false

Make keyof only return strings instead of string, numbers or symbols. Legacy option.

--lib list

Specify a set of bundled library declaration files that describe the target runtime environment.

--listEmittedFiles boolean

false

Print the names of emitted files after a compilation.

--listFiles boolean

false

Print all of the files read during the compilation.

--mapRoot string

Specify the location where debugger should locate map files instead of generated locations.

--maxNodeModuleJsDepth number

0

Specify the maximum folder depth used for checking JavaScript files from node_modules. Only applicable with allowJs.

--module `CommonJS` (default if `target` is `ES3` or `ES5`), , `ES6`, `ES2015`, `ES2020`, , `None`, `UMD`, `AMD`, `System`, or `ESNext`

Specify what module code is generated.

--moduleResolution

module === AMD or UMD or System or ES6, then Classic

Otherwise Node

Specify how TypeScript looks up a file from a given module specifier.

--newLine

Platform specific

Set the newline character for emitting files.

--noEmit boolean

false

Disable emitting file from a compilation.

--noEmitHelpers boolean

false

Disable generating custom helper functions like __extends in compiled output.

--noEmitOnError boolean

false

Disable emitting files if any type checking errors are reported.

--noErrorTruncation boolean

false

Disable truncating types in error messages.

--noFallthroughCasesInSwitch boolean

false

Enable error reporting for fallthrough cases in switch statements.

--noImplicitAny boolean

false, unless strict is set

Enable error reporting for expressions and declarations with an implied any type..

--noImplicitOverride boolean

Ensure overriding members in derived classes are marked with an override modifier.

--noImplicitReturns boolean

false

Enable error reporting for codepaths that do not explicitly return in a function.

--noImplicitThis boolean

false, unless strict is set

Enable error reporting when this is given the type any.

--noImplicitUseStrict boolean

false

Disable adding 'use strict' directives in emitted JavaScript files.

--noLib boolean

false

Disable including any library files, including the default lib.d.ts.

--noPropertyAccessFromIndexSignature boolean

false

Enforces using indexed accessors for keys declared using an indexed type

--noResolve boolean

false

Disallow imports, requires or <reference>s from expanding the number of files TypeScript should add to a project.

--noStrictGenericChecks boolean

false

Disable strict checking of generic signatures in function types.

--noUncheckedIndexedAccess boolean

Add undefined to a type when accessed using an index.

--noUnusedLocals boolean

false

Enable error reporting when a local variables aren't read.

--noUnusedParameters boolean

false

Raise an error when a function parameter isn't read

--out string

n/a

Deprecated setting. Use outFile instead.

--outDir string

n/a

Specify an output folder for all emitted files.

--outFile string

n/a

Specify a file that bundles all outputs into one JavaScript file. If declaration is true, also designates a file that bundles all .d.ts output.

--paths object

Specify a set of entries that re-map imports to additional lookup locations.

--plugins list

Specify a list of language service plugins to include.

--preserveConstEnums boolean

false

Disable erasing const enum declarations in generated code.

--preserveSymlinks boolean

false

Disable resolving symlinks to their realpath. This correlates to the same flag in node.

--preserveWatchOutput boolean

false

Disable wiping the console in watch mode

--pretty boolean

true

Enable color and formatting in output to make compiler errors easier to read

--reactNamespace string

"React"

Specify the object invoked for createElement. This only applies when targeting react JSX emit.

--removeComments boolean

false

Disable emitting comments.

--resolveJsonModule boolean

false

Enable importing .json files

--rootDir string

Computed from the list of input files

Specify the root folder within your source files.

--rootDirs list

Allow multiple folders to be treated as one when resolving modules.

--skipDefaultLibCheck boolean

false

Skip type checking .d.ts files that are included with TypeScript.

--skipLibCheck boolean

false

Skip type checking all .d.ts files.

--sourceMap boolean

false

Create source map files for emitted JavaScript files.

--sourceRoot string

Specify the root path for debuggers to find the reference source code.

--strict boolean

false

Enable all strict type checking options.

--strictBindCallApply boolean

false, unless strict is set

Check that the arguments for bind, call, and apply methods match the original function.

--strictFunctionTypes boolean

false, unless strict is set

When assigning functions, check to ensure parameters and the return values are subtype-compatible.

--strictNullChecks boolean

false, unless strict is set

When type checking, take into account null and undefined.

--strictPropertyInitialization boolean

false, unless strict is set

Check for class properties that are declared but not set in the constructor.

--stripInternal boolean

Disable emitting declarations that have @internal in their JSDoc comments.

--suppressExcessPropertyErrors boolean

false

Disable reporting of excess property errors during the creation of object literals.

--suppressImplicitAnyIndexErrors boolean

false

Suppress noImplicitAny errors when indexing objects that lack index signatures.

--target `ES3` (default), `ES5`, `ES6`/`ES2015` (synonymous), `ES7`/`ES2016`, `ES2017`, `ES2018`, `ES2019`, `ES2020`, or `ESNext`

ES3

Set the JavaScript language version for emitted JavaScript and include compatible library declarations.

--traceResolution boolean

false

Log paths used during the moduleResolution process.

--tsBuildInfoFile string

.tsbuildinfo

Specify the folder for .tsbuildinfo incremental compilation files.

--typeRoots list

Specify multiple folders that act like ./node_modules/@types.

--types list

Specify type package names to be included without being referenced in a source file.

--useDefineForClassFields boolean

false

Emit ECMAScript-standard-compliant class fields.

--useUnknownInCatchVariables boolean

false, unless strict is set

Default catch clause variables as unknown instead of any.

The TypeScript docs are an open source project. Help us improve these pages by sending a Pull Request

Contributors to this page:
MHMohamed Hegazy  (96)
OTOrta Therox  (42)
DRDaniel Rosenwasser  (19)
ADAxel D  (14)
AGAnton Gilgur  (7)
51+

Last updated: Jul 26, 2021