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