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.
sh# Run a compile based on a backwards look through the fs for a tsconfig.jsontsc# Emit JS for just the index.ts with the compiler defaultstsc index.ts# Emit JS for any .ts files in the folder src, with the default settingstsc src/*.ts# Emit files referenced in with the compiler settings from tsconfig.production.jsontsc --project tsconfig.production.json# Emit d.ts files for a js file with showing compiler options which are booleanstsc index.js --declaration --emitDeclarationOnly# Emit a single .js file from two files via compiler options which take string argumentstsc 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 | 
  
  | 
|
| 
 Show all compiler options.  | ||
--help | 
  
  | 
|
| 
 Gives local information for help on the CLI.  | ||
--init | 
  
  | 
|
| 
 Initializes a TypeScript project and creates a tsconfig.json file.  | ||
--listFilesOnly | 
  
  | 
|
| 
 Print names of files that are part of the compilation and then stop processing.  | ||
--locale | 
  
  | 
|
| 
 Set the language of the messaging from TypeScript. This does not affect emit.  | ||
--project | 
  
  | 
|
| 
 Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.  | ||
--showConfig | 
  
  | 
|
| 
 Print the final configuration instead of building.  | ||
--version | 
  
  | 
|
| 
 Print the compiler's version.  | ||
Build Options
| Flag | Type | |
|---|---|---|
--build | 
  
  | 
|
| 
 Build one or more projects and their dependencies, if out of date  | ||
--clean | 
  
  | 
|
| 
 Delete the outputs of all projects.  | ||
--dry | 
  
  | 
|
| 
 Show what would be built (or deleted, if specified with '--clean')  | ||
--force | 
  
  | 
|
| 
 Build all projects, including those that appear to be up to date.  | ||
--verbose | 
  
  | 
|
| 
 Enable verbose logging.  | ||
Watch Options
| Flag | Type | |
|---|---|---|
--excludeDirectories | 
  
  | 
|
| 
 Remove a list of directories from the watch process.  | ||
--excludeFiles | 
  
  | 
|
| 
 Remove a list of files from the watch mode's processing.  | ||
--fallbackPolling | 
  
  | 
|
| 
 Specify what approach the watcher should use if the system runs out of native file watchers.  | ||
--synchronousWatchDirectory | 
  
  | 
|
| 
 Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.  | ||
--watch | 
  
  | 
|
| 
 Watch input files.  | ||
--watchDirectory | 
  
  | 
|
| 
 Specify how directories are watched on systems that lack recursive file-watching functionality.  | ||
--watchFile | 
  
  | 
|
| 
 Specify how the TypeScript watch mode works.  | ||
Compiler Flags
| Flag | Type | Default | 
|---|---|---|
--allowArbitraryExtensions | 
  
  | 
  
  | 
| 
 Enable importing files with any extension, provided a declaration file is present.  | ||
--allowImportingTsExtensions | 
  
  | 
  
  | 
| 
 Allow imports to include TypeScript file extensions.  | ||
--allowJs | 
  
  | 
  
  | 
| 
 Allow JavaScript files to be a part of your program. Use the   | ||
--allowSyntheticDefaultImports | 
  
  | 
  
  | 
| 
 Allow 'import x from y' when a module doesn't have a default export.  | ||
--allowUmdGlobalAccess | 
  
  | 
  
  | 
| 
 Allow accessing UMD globals from modules.  | ||
--allowUnreachableCode | 
  
  | 
  |
| 
 Disable error reporting for unreachable code.  | ||
--allowUnusedLabels | 
  
  | 
  |
| 
 Disable error reporting for unused labels.  | ||
--alwaysStrict | 
  
  | 
  
  | 
| 
 Ensure 'use strict' is always emitted.  | ||
--assumeChangesOnlyAffectDirectDependencies | 
  
  | 
  
  | 
| 
 Have recompiles in projects that use   | ||
--baseUrl | 
  
  | 
  |
| 
 Specify the base directory to resolve bare specifier module names.  | ||
--charset | 
  
  | 
  
  | 
| 
 No longer supported. In early versions, manually set the text encoding for reading files.  | ||
--checkJs | 
  
  | 
  
  | 
| 
 Enable error reporting in type-checked JavaScript files.  | ||
--composite | 
  
  | 
  
  | 
| 
 Enable constraints that allow a TypeScript project to be used with project references.  | ||
--customConditions | 
  
  | 
  |
| 
 Conditions to set in addition to the resolver-specific defaults when resolving imports.  | ||
--declaration | 
  
  | 
  
  | 
| 
 Generate .d.ts files from TypeScript and JavaScript files in your project.  | ||
--declarationDir | 
  
  | 
  |
| 
 Specify the output directory for generated declaration files.  | ||
--declarationMap | 
  
  | 
  
  | 
| 
 Create sourcemaps for d.ts files.  | ||
--diagnostics | 
  
  | 
  
  | 
| 
 Output compiler performance information after building.  | ||
--disableReferencedProjectLoad | 
  
  | 
  
  | 
| 
 Reduce the number of projects loaded automatically by TypeScript.  | ||
--disableSizeLimit | 
  
  | 
  
  | 
| 
 Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.  | ||
--disableSolutionSearching | 
  
  | 
  
  | 
| 
 Opt a project out of multi-project reference checking when editing.  | ||
--disableSourceOfProjectReferenceRedirect | 
  
  | 
  
  | 
| 
 Disable preferring source files instead of declaration files when referencing composite projects.  | ||
--downlevelIteration | 
  
  | 
  
  | 
| 
 Emit more compliant, but verbose and less performant JavaScript for iteration.  | ||
--emitBOM | 
  
  | 
  
  | 
| 
 Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.  | ||
--emitDeclarationOnly | 
  
  | 
  
  | 
| 
 Only output d.ts files and not JavaScript files.  | ||
--emitDecoratorMetadata | 
  
  | 
  
  | 
| 
 Emit design-type metadata for decorated declarations in source files.  | ||
--erasableSyntaxOnly | 
  
  | 
  
  | 
| 
 Do not allow runtime constructs that are not part of ECMAScript.  | ||
--esModuleInterop | 
  
  | 
  
  | 
| 
 Emit additional JavaScript to ease support for importing CommonJS modules. This enables   | ||
--exactOptionalPropertyTypes | 
  
  | 
  
  | 
| 
 Interpret optional property types as written, rather than adding   | ||
--experimentalDecorators | 
  
  | 
  
  | 
| 
 Enable experimental support for TC39 stage 2 draft decorators.  | ||
--explainFiles | 
  
  | 
  
  | 
| 
 Print files read during the compilation including why it was included.  | ||
--extendedDiagnostics | 
  
  | 
  
  | 
| 
 Output more detailed compiler performance information after building.  | ||
--forceConsistentCasingInFileNames | 
  
  | 
  
  | 
| 
 Ensure that casing is correct in imports.  | ||
--generateCpuProfile | 
  
  | 
  
  | 
| 
 Emit a v8 CPU profile of the compiler run for debugging.  | ||
--generateTrace | 
  
  | 
  |
| 
 Generates an event trace and a list of types.  | ||
--importHelpers | 
  
  | 
  
  | 
| 
 Allow importing helper functions from tslib once per project, instead of including them per-file.  | ||
--importsNotUsedAsValues | 
  
  | 
  
  | 
| 
 Specify emit/checking behavior for imports that are only used for types.  | ||
--incremental | 
  
  | 
  
  | 
| 
 Save .tsbuildinfo files to allow for incremental compilation of projects.  | ||
--inlineSourceMap | 
  
  | 
  
  | 
| 
 Include sourcemap files inside the emitted JavaScript.  | ||
--inlineSources | 
  
  | 
  
  | 
| 
 Include source code in the sourcemaps inside the emitted JavaScript.  | ||
--isolatedDeclarations | 
  
  | 
  
  | 
| 
 Require sufficient annotation on exports so other tools can trivially generate declaration files.  | ||
--isolatedModules | 
  
  | 
  
  | 
| 
 Ensure that each file can be safely transpiled without relying on other imports.  | ||
--jsx | 
  
  | 
  |
| 
 Specify what JSX code is generated.  | ||
--jsxFactory | 
  
  | 
  
  | 
| 
 Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.  | ||
--jsxFragmentFactory | 
  
  | 
  
  | 
| 
 Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.  | ||
--jsxImportSource | 
  
  | 
  
  | 
| 
 Specify module specifier used to import the JSX factory functions when using   | ||
--keyofStringsOnly | 
  
  | 
  
  | 
| 
 Make keyof only return strings instead of string, numbers or symbols. Legacy option.  | ||
--lib | 
  
  | 
  |
| 
 Specify a set of bundled library declaration files that describe the target runtime environment.  | ||
--libReplacement | 
  
  | 
  
  | 
| 
 Enable substitution of default   | ||
--listEmittedFiles | 
  
  | 
  
  | 
| 
 Print the names of emitted files after a compilation.  | ||
--listFiles | 
  
  | 
  
  | 
| 
 Print all of the files read during the compilation.  | ||
--mapRoot | 
  
  | 
  |
| 
 Specify the location where debugger should locate map files instead of generated locations.  | ||
--maxNodeModuleJsDepth | 
  
  | 
  
  | 
| 
 Specify the maximum folder depth used for checking JavaScript files from   | ||
--module | 
  
  | 
  
  | 
| 
 Specify what module code is generated.  | ||
--moduleDetection | 
  
  | 
  "auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.  | 
| 
 Specify what method is used to detect whether a file is a script or a module.  | ||
--moduleResolution | 
  
  | 
  
  | 
| 
 Specify how TypeScript looks up a file from a given module specifier.  | ||
--moduleSuffixes | 
  
  | 
  |
| 
 List of file name suffixes to search when resolving a module.  | ||
--newLine | 
  
  | 
  
  | 
| 
 Set the newline character for emitting files.  | ||
--noCheck | 
  
  | 
  
  | 
| 
 Disable full type checking (only critical parse and emit errors will be reported).  | ||
--noEmit | 
  
  | 
  
  | 
| 
 Disable emitting files from a compilation.  | ||
--noEmitHelpers | 
  
  | 
  
  | 
| 
 Disable generating custom helper functions like   | ||
--noEmitOnError | 
  
  | 
  
  | 
| 
 Disable emitting files if any type checking errors are reported.  | ||
--noErrorTruncation | 
  
  | 
  
  | 
| 
 Disable truncating types in error messages.  | ||
--noFallthroughCasesInSwitch | 
  
  | 
  
  | 
| 
 Enable error reporting for fallthrough cases in switch statements.  | ||
--noImplicitAny | 
  
  | 
  
  | 
| 
 Enable error reporting for expressions and declarations with an implied   | ||
--noImplicitOverride | 
  
  | 
  
  | 
| 
 Ensure overriding members in derived classes are marked with an override modifier.  | ||
--noImplicitReturns | 
  
  | 
  
  | 
| 
 Enable error reporting for codepaths that do not explicitly return in a function.  | ||
--noImplicitThis | 
  
  | 
  
  | 
| 
 Enable error reporting when   | ||
--noImplicitUseStrict | 
  
  | 
  
  | 
| 
 Disable adding 'use strict' directives in emitted JavaScript files.  | ||
--noLib | 
  
  | 
  
  | 
| 
 Disable including any library files, including the default lib.d.ts.  | ||
--noPropertyAccessFromIndexSignature | 
  
  | 
  
  | 
| 
 Enforces using indexed accessors for keys declared using an indexed type.  | ||
--noResolve | 
  
  | 
  
  | 
| 
 Disallow   | ||
--noStrictGenericChecks | 
  
  | 
  
  | 
| 
 Disable strict checking of generic signatures in function types.  | ||
--noUncheckedIndexedAccess | 
  
  | 
  
  | 
| 
 Add   | ||
--noUncheckedSideEffectImports | 
  
  | 
  
  | 
| 
 Check side effect imports.  | ||
--noUnusedLocals | 
  
  | 
  
  | 
| 
 Enable error reporting when local variables aren't read.  | ||
--noUnusedParameters | 
  
  | 
  
  | 
| 
 Raise an error when a function parameter isn't read.  | ||
--out | 
  
  | 
  |
| 
 Deprecated setting. Use   | ||
--outDir | 
  
  | 
  |
| 
 Specify an output folder for all emitted files.  | ||
--outFile | 
  
  | 
  |
| 
 Specify a file that bundles all outputs into one JavaScript file. If   | ||
--paths | 
  
  | 
  |
| 
 Specify a set of entries that re-map imports to additional lookup locations.  | ||
--plugins | 
  
  | 
  |
| 
 Specify a list of language service plugins to include.  | ||
--preserveConstEnums | 
  
  | 
  
  | 
| 
 Disable erasing   | ||
--preserveSymlinks | 
  
  | 
  
  | 
| 
 Disable resolving symlinks to their realpath. This correlates to the same flag in node.  | ||
--preserveValueImports | 
  
  | 
  
  | 
| 
 Preserve unused imported values in the JavaScript output that would otherwise be removed.  | ||
--preserveWatchOutput | 
  
  | 
  
  | 
| 
 Disable wiping the console in watch mode.  | ||
--pretty | 
  
  | 
  
  | 
| 
 Enable color and formatting in TypeScript's output to make compiler errors easier to read.  | ||
--reactNamespace | 
  
  | 
  
  | 
| 
 Specify the object invoked for   | ||
--removeComments | 
  
  | 
  
  | 
| 
 Disable emitting comments.  | ||
--resolveJsonModule | 
  
  | 
  
  | 
| 
 Enable importing .json files.  | ||
--resolvePackageJsonExports | 
  
  | 
  
  | 
| 
 Use the package.json 'exports' field when resolving package imports.  | ||
--resolvePackageJsonImports | 
  
  | 
  
  | 
| 
 Use the package.json 'imports' field when resolving imports.  | ||
--rewriteRelativeImportExtensions | 
  
  | 
  
  | 
| 
 Rewrite   | ||
--rootDir | 
  
  | 
  Computed from the list of input files.  | 
| 
 Specify the root folder within your source files.  | ||
--rootDirs | 
  
  | 
  Computed from the list of input files.  | 
| 
 Allow multiple folders to be treated as one when resolving modules.  | ||
--skipDefaultLibCheck | 
  
  | 
  
  | 
| 
 Skip type checking .d.ts files that are included with TypeScript.  | ||
--skipLibCheck | 
  
  | 
  
  | 
| 
 Skip type checking all .d.ts files.  | ||
--sourceMap | 
  
  | 
  
  | 
| 
 Create source map files for emitted JavaScript files.  | ||
--sourceRoot | 
  
  | 
  |
| 
 Specify the root path for debuggers to find the reference source code.  | ||
--stopBuildOnErrors | 
  
  | 
  |
| 
 Skip building downstream projects on error in upstream project.  | ||
--strict | 
  
  | 
  
  | 
| 
 Enable all strict type-checking options.  | ||
--strictBindCallApply | 
  
  | 
  
  | 
| 
 Check that the arguments for   | ||
--strictBuiltinIteratorReturn | 
  
  | 
  
  | 
| 
 Built-in iterators are instantiated with a TReturn type of undefined instead of any.  | ||
--strictFunctionTypes | 
  
  | 
  
  | 
| 
 When assigning functions, check to ensure parameters and the return values are subtype-compatible.  | ||
--strictNullChecks | 
  
  | 
  
  | 
| 
 When type checking, take into account   | ||
--strictPropertyInitialization | 
  
  | 
  
  | 
| 
 Check for class properties that are declared but not set in the constructor.  | ||
--stripInternal | 
  
  | 
  
  | 
| 
 Disable emitting declarations that have   | ||
--suppressExcessPropertyErrors | 
  
  | 
  
  | 
| 
 Disable reporting of excess property errors during the creation of object literals.  | ||
--suppressImplicitAnyIndexErrors | 
  
  | 
  
  | 
| 
 Suppress   | ||
--target | 
  
  | 
  
  | 
| 
 Set the JavaScript language version for emitted JavaScript and include compatible library declarations.  | ||
--traceResolution | 
  
  | 
  
  | 
| 
 Log paths used during the   | ||
--tsBuildInfoFile | 
  
  | 
  
  | 
| 
 The file to store   | ||
--typeRoots | 
  
  | 
  |
| 
 Specify multiple folders that act like   | ||
--types | 
  
  | 
  |
| 
 Specify type package names to be included without being referenced in a source file.  | ||
--useDefineForClassFields | 
  
  | 
  
  | 
| 
 Emit ECMAScript-standard-compliant class fields.  | ||
--useUnknownInCatchVariables | 
  
  | 
  
  | 
| 
 Default catch clause variables as   | ||
--verbatimModuleSyntax | 
  
  | 
  
  | 
| 
 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.jsonfile. - Learn how to work in an MSBuild project.