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.

  1. # 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

FlagType
—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

FlagType
—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

FlagType
—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

FlagTypeDefault
—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

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

  • true if strict,

  • false otherwise.

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

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

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

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, node12, or nodenext

  • CommonJS if target is ES3 or ES5,

  • ES6/ES2015 otherwise.

Specify what module code is generated.

—moduleResolution

classic or node

  • Classic if module is AMD, UMD, System or ES6/ES2015,

  • Matches if module is node12 or nodenext,

  • Node otherwise.

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

—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

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

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

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

Disable erasing const enum declarations in generated code.

—preserveSymlinks

boolean

n/a

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

—preserveValueImports

boolean

Preserve unused imported values in the JavaScript output that would otherwise be removed.

—preserveWatchOutput

boolean

n/a

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.

—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

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, 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

  • 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.