Skip to content

Compiler Flags

Author:Anda Toshiki
Updated:3 months ago
Words:1.1k
Reading:7 min
// @allowJs
Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files..

// @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 `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it..

// @baseUrl
Specify the base directory to resolve non-relative 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..

// @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..

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

// @exactOptionalPropertyTypes
Interpret optional property types as written, rather than adding 'undefined'..

// @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..

// @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
Enable incremental compilation.

// @inlineSourceMap
Include sourcemap files inside the emitted JavaScript..

// @inlineSources
Include source code in the sourcemaps inside the emitted JavaScript..

// @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 `jsx: react-jsx*`.`.

// @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..

// @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 `node_modules`. Only applicable with `allowJs`..

// @module
Specify what module code is generated..

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

// @newLine
Set the newline character for emitting files..

// @noEmit
Disable emitting file from a compilation..

// @noEmitHelpers
Disable generating custom helper functions like `__extends` in compiled output..

// @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 `any` type...

// @noImplicitOverride
Add `undefined` to a type when accessed using an index..

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

// @noImplicitThis
Enable error reporting when `this` is given the type `any`..

// @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 `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project..

// @noStrictGenericChecks
Disable strict checking of generic signatures in function types..

// @noUncheckedIndexedAccess
Include 'undefined' in index signature results.

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

// @noUnusedParameters
Raise an error when a function parameter isn't read.

// @out
Deprecated setting. Use `outFile` instead..

// @outDir
Specify an output folder for all emitted files..

// @outFile
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
Specify a set of entries that re-map imports to additional lookup locations..

// @plugins
List of language service plugins..

// @preserveConstEnums
Disable erasing `const enum` declarations in generated code..

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

// @preserveWatchOutput
Disable wiping the console in watch mode.

// @pretty
Enable color and formatting in output to make compiler errors easier to read.

// @reactNamespace
Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit..

// @removeComments
Disable emitting comments..

// @resolveJsonModule
Enable importing .json files.

// @rootDir
Specify the root folder within your source files..

// @rootDirs
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..

// @strict
Enable all strict type-checking options..

// @strictBindCallApply
Check that the arguments for `bind`, `call`, and `apply` methods match the original function..

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

// @strictNullChecks
When type checking, take into account `null` and `undefined`..

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

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

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

// @suppressImplicitAnyIndexErrors
Suppress `noImplicitAny` errors when indexing objects that lack index signatures..

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

// @traceResolution
Log paths used during the `moduleResolution` process..

// @tsBuildInfoFile
Specify the folder for .tsbuildinfo incremental compilation files..

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

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

// @useDefineForClassFields
Emit ECMAScript-standard-compliant class fields..

// @useUnknownInCatchVariables
Type catch clause variables as 'unknown' instead of 'any'..
// @allowJs
Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files..

// @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 `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it..

// @baseUrl
Specify the base directory to resolve non-relative 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..

// @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..

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

// @exactOptionalPropertyTypes
Interpret optional property types as written, rather than adding 'undefined'..

// @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..

// @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
Enable incremental compilation.

// @inlineSourceMap
Include sourcemap files inside the emitted JavaScript..

// @inlineSources
Include source code in the sourcemaps inside the emitted JavaScript..

// @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 `jsx: react-jsx*`.`.

// @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..

// @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 `node_modules`. Only applicable with `allowJs`..

// @module
Specify what module code is generated..

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

// @newLine
Set the newline character for emitting files..

// @noEmit
Disable emitting file from a compilation..

// @noEmitHelpers
Disable generating custom helper functions like `__extends` in compiled output..

// @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 `any` type...

// @noImplicitOverride
Add `undefined` to a type when accessed using an index..

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

// @noImplicitThis
Enable error reporting when `this` is given the type `any`..

// @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 `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project..

// @noStrictGenericChecks
Disable strict checking of generic signatures in function types..

// @noUncheckedIndexedAccess
Include 'undefined' in index signature results.

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

// @noUnusedParameters
Raise an error when a function parameter isn't read.

// @out
Deprecated setting. Use `outFile` instead..

// @outDir
Specify an output folder for all emitted files..

// @outFile
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
Specify a set of entries that re-map imports to additional lookup locations..

// @plugins
List of language service plugins..

// @preserveConstEnums
Disable erasing `const enum` declarations in generated code..

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

// @preserveWatchOutput
Disable wiping the console in watch mode.

// @pretty
Enable color and formatting in output to make compiler errors easier to read.

// @reactNamespace
Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit..

// @removeComments
Disable emitting comments..

// @resolveJsonModule
Enable importing .json files.

// @rootDir
Specify the root folder within your source files..

// @rootDirs
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..

// @strict
Enable all strict type-checking options..

// @strictBindCallApply
Check that the arguments for `bind`, `call`, and `apply` methods match the original function..

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

// @strictNullChecks
When type checking, take into account `null` and `undefined`..

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

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

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

// @suppressImplicitAnyIndexErrors
Suppress `noImplicitAny` errors when indexing objects that lack index signatures..

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

// @traceResolution
Log paths used during the `moduleResolution` process..

// @tsBuildInfoFile
Specify the folder for .tsbuildinfo incremental compilation files..

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

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

// @useDefineForClassFields
Emit ECMAScript-standard-compliant class fields..

// @useUnknownInCatchVariables
Type catch clause variables as 'unknown' instead of 'any'..