tsc CLI Options #
Using the CLI #
Running tsc locally will compile the closest project defined by a
tsconfig.json, or you can compile a set of TypeScript files by passing
in a glob of files you want. When input files are specified on the
command line, tsconfig.json files are ignored.
# 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 fixedinterval, priorityinterval, dynamicpriority, or fixedchunksize
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 usefsevents, fixedpollinginterval, dynamicprioritypolling, or fixedchunksizepolling
Specify how directories are watched on systems that lack recursive file-watching functionality.--watchFile fixedpollinginterval, prioritypollinginterval, dynamicprioritypolling, fixedchunksizepolling, usefsevents, or usefseventsonparentdirectory
Specify how the TypeScript watch mode works.
Compiler Flags #
Flag Type Default
--allowArbitraryExtensions boolean false
Enable importing files with any extension, provided a declaration file is present.--allowImportingTsExtensions boolean false
Allow imports to include TypeScript file extensions.--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 true if
esModuleInterop is enabled,
module is system, or
moduleResolution is bundler, false otherwise.
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
Disable error reporting for unreachable code.--allowUnusedLabels boolean
Disable error reporting for unused labels.--alwaysStrict boolean true if
strict, false otherwise.
Ensure 'use strict' is always emitted.--assumeChangesOnlyAffectDirectDependencies boolean false
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.--customConditions list
Conditions to set in addition to the resolver-specific defaults when resolving imports.--declaration boolean true if
composite, false otherwise.
Generate .d.ts files from TypeScript and JavaScript files in your project.--declarationDir string
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 false
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 false
Opt a project out of multi-project reference checking when editing.--disableSourceOfProjectReferenceRedirect boolean false
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 false
Emit design-type metadata for decorated declarations in source files.--esModuleInterop boolean true if
module is node16 or nodenext, false otherwise.
Emit additional JavaScript to ease support for importing CommonJS modules. This enables
allowSyntheticDefaultImports for type compatibility.--exactOptionalPropertyTypes boolean false
Interpret optional property types as written, rather than adding undefined.--experimentalDecorators boolean false
Enable experimental support for TC39 stage 2 draft decorators.--explainFiles boolean false
Print files read during the compilation including why it was included.--extendedDiagnostics boolean false
Output more detailed compiler performance information after building.--forceConsistentCasingInFileNames boolean true
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 remove
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 preserve, react, react-native, react-jsx, or react-jsxdev
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 React.Fragment
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 none, commonjs, amd, umd, system, es6/es2015, es2020, es2022, esnext, node16, or nodenext CommonJS if
target is ES3 or ES5, ES6/ES2015 otherwise.
Specify what module code is generated.--moduleDetection legacy, auto, or force "auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.
Control what method is used to detect the whether a JS file is a module.--moduleResolution classic, node10/node, node16, nodenext, or bundler Classic if
module is AMD, UMD, System or ES6/ES2015, Matches if
module is node16 or nodenext, Node otherwise.
Specify how TypeScript looks up a file from a given module specifier.--moduleSuffixes list
List of file name suffixes to search when resolving a module.--newLine crlf or lf Platform specific.
Set the newline character for emitting files.--noEmit boolean false
Disable emitting files 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 true if
strict, false otherwise.
Enable error reporting for expressions and declarations with an implied any type.--noImplicitOverride boolean false
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 true if
strict, false otherwise.
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 false
Add undefined to a type when accessed using an index.--noUnusedLocals boolean false
Enable error reporting when local variables aren't read.--noUnusedParameters boolean false
Raise an error when a function parameter isn't read.--out string
Deprecated setting. Use
outFile instead.--outDir string
Specify an output folder for all emitted files.--outFile string
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 true if
isolatedModules, false otherwise.
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.--preserveValueImports boolean false
Preserve unused imported values in the JavaScript output that would otherwise be removed.--preserveWatchOutput boolean false
Disable wiping the console in watch mode.--pretty boolean true
Enable color and formatting in TypeScript's 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.--resolvePackageJsonExports boolean true when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise false.
Use the package.json 'exports' field when resolving package imports.--resolvePackageJsonImports boolean true when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise false.
Use the package.json 'imports' field when resolving imports.--rootDir string Computed from the list of input files.
Specify the root folder within your source files.--rootDirs list Computed from the list of input files.
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 true if
strict, false otherwise.
Check that the arguments for bind, call, and apply methods match the original function.--strictFunctionTypes boolean true if
strict, false otherwise.
When assigning functions, check to ensure parameters and the return values are subtype-compatible.--strictNullChecks boolean true if
strict, false otherwise.
When type checking, take into account null and undefined.--strictPropertyInitialization boolean true if
strict, false otherwise.
Check for class properties that are declared but not set in the constructor.--stripInternal boolean false
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, es5, es6/es2015, es2016, es2017, es2018, es2019, es2020, es2021, es2022, 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
The file to store .tsbuildinfo incremental build information in.--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 true if
target is ES2022 or higher, including ESNext, false otherwise.
Emit ECMAScript-standard-compliant class fields.--useUnknownInCatchVariables boolean true if
strict, false otherwise.
Default catch clause variables as unknown instead of any.--verbatimModuleSyntax boolean false
Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.
Related #
- Every option is fully explained in the TSConfig Reference.
- Learn how to use a
tsconfig.jsonfiles. - Learn how to work in an MSBuild project.
::: _attribution
© 2012-2023 Microsoft
Licensed under the Apache License, Version 2.0.
https://www.typescriptlang.org/docs/handbook/compiler-options.html{._attribution-link}
:::