declare namespace TsConfigJson {
|
namespace CompilerOptions {
|
export type JSX =
|
| 'preserve'
|
| 'react'
|
| 'react-native';
|
|
export type Module =
|
| 'CommonJS'
|
| 'AMD'
|
| 'System'
|
| 'UMD'
|
| 'ES6'
|
| 'ES2015'
|
| 'ESNext'
|
| 'None'
|
// Lowercase alternatives
|
| 'commonjs'
|
| 'amd'
|
| 'system'
|
| 'umd'
|
| 'es6'
|
| 'es2015'
|
| 'esnext'
|
| 'none';
|
|
export type NewLine =
|
| 'CRLF'
|
| 'LF'
|
// Lowercase alternatives
|
| 'crlf'
|
| 'lf';
|
|
export type Target =
|
| 'ES3'
|
| 'ES5'
|
| 'ES6'
|
| 'ES2015'
|
| 'ES2016'
|
| 'ES2017'
|
| 'ES2018'
|
| 'ES2019'
|
| 'ES2020'
|
| 'ESNext'
|
// Lowercase alternatives
|
| 'es3'
|
| 'es5'
|
| 'es6'
|
| 'es2015'
|
| 'es2016'
|
| 'es2017'
|
| 'es2018'
|
| 'es2019'
|
| 'es2020'
|
| 'esnext';
|
|
export type Lib =
|
| 'ES5'
|
| 'ES6'
|
| 'ES7'
|
| 'ES2015'
|
| 'ES2015.Collection'
|
| 'ES2015.Core'
|
| 'ES2015.Generator'
|
| 'ES2015.Iterable'
|
| 'ES2015.Promise'
|
| 'ES2015.Proxy'
|
| 'ES2015.Reflect'
|
| 'ES2015.Symbol.WellKnown'
|
| 'ES2015.Symbol'
|
| 'ES2016'
|
| 'ES2016.Array.Include'
|
| 'ES2017'
|
| 'ES2017.Intl'
|
| 'ES2017.Object'
|
| 'ES2017.SharedMemory'
|
| 'ES2017.String'
|
| 'ES2017.TypedArrays'
|
| 'ES2018'
|
| 'ES2018.AsyncIterable'
|
| 'ES2018.Intl'
|
| 'ES2018.Promise'
|
| 'ES2018.Regexp'
|
| 'ES2019'
|
| 'ES2019.Array'
|
| 'ES2019.Object'
|
| 'ES2019.String'
|
| 'ES2019.Symbol'
|
| 'ES2020'
|
| 'ES2020.String'
|
| 'ES2020.Symbol.WellKnown'
|
| 'ESNext'
|
| 'ESNext.Array'
|
| 'ESNext.AsyncIterable'
|
| 'ESNext.BigInt'
|
| 'ESNext.Intl'
|
| 'ESNext.Symbol'
|
| 'DOM'
|
| 'DOM.Iterable'
|
| 'ScriptHost'
|
| 'WebWorker'
|
| 'WebWorker.ImportScripts'
|
// Lowercase alternatives
|
| 'es5'
|
| 'es6'
|
| 'es7'
|
| 'es2015'
|
| 'es2015.collection'
|
| 'es2015.core'
|
| 'es2015.generator'
|
| 'es2015.iterable'
|
| 'es2015.promise'
|
| 'es2015.proxy'
|
| 'es2015.reflect'
|
| 'es2015.symbol.wellknown'
|
| 'es2015.symbol'
|
| 'es2016'
|
| 'es2016.array.include'
|
| 'es2017'
|
| 'es2017.intl'
|
| 'es2017.object'
|
| 'es2017.sharedmemory'
|
| 'es2017.string'
|
| 'es2017.typedarrays'
|
| 'es2018'
|
| 'es2018.asynciterable'
|
| 'es2018.intl'
|
| 'es2018.promise'
|
| 'es2018.regexp'
|
| 'es2019'
|
| 'es2019.array'
|
| 'es2019.object'
|
| 'es2019.string'
|
| 'es2019.symbol'
|
| 'es2020'
|
| 'es2020.string'
|
| 'es2020.symbol.wellknown'
|
| 'esnext'
|
| 'esnext.array'
|
| 'esnext.asynciterable'
|
| 'esnext.bigint'
|
| 'esnext.intl'
|
| 'esnext.symbol'
|
| 'dom'
|
| 'dom.iterable'
|
| 'scripthost'
|
| 'webworker'
|
| 'webworker.importscripts';
|
|
export interface Plugin {
|
[key: string]: unknown;
|
/**
|
Plugin name.
|
*/
|
name?: string;
|
}
|
}
|
|
export interface CompilerOptions {
|
/**
|
The character set of the input files.
|
|
@default 'utf8'
|
*/
|
charset?: string;
|
|
/**
|
Enables building for project references.
|
|
@default true
|
*/
|
composite?: boolean;
|
|
/**
|
Generates corresponding d.ts files.
|
|
@default false
|
*/
|
declaration?: boolean;
|
|
/**
|
Specify output directory for generated declaration files.
|
|
Requires TypeScript version 2.0 or later.
|
*/
|
declarationDir?: string;
|
|
/**
|
Show diagnostic information.
|
|
@default false
|
*/
|
diagnostics?: boolean;
|
|
/**
|
Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.
|
|
@default false
|
*/
|
emitBOM?: boolean;
|
|
/**
|
Only emit `.d.ts` declaration files.
|
|
@default false
|
*/
|
emitDeclarationOnly?: boolean;
|
|
/**
|
Enable incremental compilation.
|
|
@default `composite`
|
*/
|
incremental?: boolean;
|
|
/**
|
Specify file to store incremental compilation information.
|
|
@default '.tsbuildinfo'
|
*/
|
tsBuildInfoFile?: string;
|
|
/**
|
Emit a single file with source maps instead of having a separate file.
|
|
@default false
|
*/
|
inlineSourceMap?: boolean;
|
|
/**
|
Emit the source alongside the sourcemaps within a single file.
|
|
Requires `--inlineSourceMap` to be set.
|
|
@default false
|
*/
|
inlineSources?: boolean;
|
|
/**
|
Specify JSX code generation: `'preserve'`, `'react'`, or `'react-native'`.
|
|
@default 'preserve'
|
*/
|
jsx?: CompilerOptions.JSX;
|
|
/**
|
Specifies the object invoked for `createElement` and `__spread` when targeting `'react'` JSX emit.
|
|
@default 'React'
|
*/
|
reactNamespace?: string;
|
|
/**
|
Print names of files part of the compilation.
|
|
@default false
|
*/
|
listFiles?: boolean;
|
|
/**
|
Specifies the location where debugger should locate map files instead of generated locations.
|
*/
|
mapRoot?: string;
|
|
/**
|
Specify module code generation: 'None', 'CommonJS', 'AMD', 'System', 'UMD', 'ES6', 'ES2015' or 'ESNext'. Only 'AMD' and 'System' can be used in conjunction with `--outFile`. 'ES6' and 'ES2015' values may be used when targeting 'ES5' or lower.
|
|
@default ['ES3', 'ES5'].includes(target) ? 'CommonJS' : 'ES6'
|
*/
|
module?: CompilerOptions.Module;
|
|
/**
|
Specifies the end of line sequence to be used when emitting files: 'crlf' (Windows) or 'lf' (Unix).
|
|
Default: Platform specific
|
*/
|
newLine?: CompilerOptions.NewLine;
|
|
/**
|
Do not emit output.
|
|
@default false
|
*/
|
noEmit?: boolean;
|
|
/**
|
Do not generate custom helper functions like `__extends` in compiled output.
|
|
@default false
|
*/
|
noEmitHelpers?: boolean;
|
|
/**
|
Do not emit outputs if any type checking errors were reported.
|
|
@default false
|
*/
|
noEmitOnError?: boolean;
|
|
/**
|
Warn on expressions and declarations with an implied 'any' type.
|
|
@default false
|
*/
|
noImplicitAny?: boolean;
|
|
/**
|
Raise error on 'this' expressions with an implied any type.
|
|
@default false
|
*/
|
noImplicitThis?: boolean;
|
|
/**
|
Report errors on unused locals.
|
|
Requires TypeScript version 2.0 or later.
|
|
@default false
|
*/
|
noUnusedLocals?: boolean;
|
|
/**
|
Report errors on unused parameters.
|
|
Requires TypeScript version 2.0 or later.
|
|
@default false
|
*/
|
noUnusedParameters?: boolean;
|
|
/**
|
Do not include the default library file (lib.d.ts).
|
|
@default false
|
*/
|
noLib?: boolean;
|
|
/**
|
Do not add triple-slash references or module import targets to the list of compiled files.
|
|
@default false
|
*/
|
noResolve?: boolean;
|
|
/**
|
Disable strict checking of generic signatures in function types.
|
|
@default false
|
*/
|
noStrictGenericChecks?: boolean;
|
|
/**
|
@deprecated use `skipLibCheck` instead.
|
*/
|
skipDefaultLibCheck?: boolean;
|
|
/**
|
Skip type checking of declaration files.
|
|
Requires TypeScript version 2.0 or later.
|
|
@default false
|
*/
|
skipLibCheck?: boolean;
|
|
/**
|
Concatenate and emit output to single file.
|
*/
|
outFile?: string;
|
|
/**
|
Redirect output structure to the directory.
|
*/
|
outDir?: string;
|
|
/**
|
Do not erase const enum declarations in generated code.
|
|
@default false
|
*/
|
preserveConstEnums?: boolean;
|
|
/**
|
Do not resolve symlinks to their real path; treat a symlinked file like a real one.
|
|
@default false
|
*/
|
preserveSymlinks?: boolean;
|
|
/**
|
Keep outdated console output in watch mode instead of clearing the screen.
|
|
@default false
|
*/
|
preserveWatchOutput?: boolean;
|
|
/**
|
Stylize errors and messages using color and context (experimental).
|
|
@default true // Unless piping to another program or redirecting output to a file.
|
*/
|
pretty?: boolean;
|
|
/**
|
Do not emit comments to output.
|
|
@default false
|
*/
|
removeComments?: boolean;
|
|
/**
|
Specifies the root directory of input files.
|
|
Use to control the output directory structure with `--outDir`.
|
*/
|
rootDir?: string;
|
|
/**
|
Unconditionally emit imports for unresolved files.
|
|
@default false
|
*/
|
isolatedModules?: boolean;
|
|
/**
|
Generates corresponding '.map' file.
|
|
@default false
|
*/
|
sourceMap?: boolean;
|
|
/**
|
Specifies the location where debugger should locate TypeScript files instead of source locations.
|
*/
|
sourceRoot?: string;
|
|
/**
|
Suppress excess property checks for object literals.
|
|
@default false
|
*/
|
suppressExcessPropertyErrors?: boolean;
|
|
/**
|
Suppress noImplicitAny errors for indexing objects lacking index signatures.
|
|
@default false
|
*/
|
suppressImplicitAnyIndexErrors?: boolean;
|
|
/**
|
Do not emit declarations for code that has an `@internal` annotation.
|
*/
|
stripInternal?: boolean;
|
|
/**
|
Specify ECMAScript target version.
|
|
@default 'es3'
|
*/
|
target?: CompilerOptions.Target;
|
|
/**
|
Watch input files.
|
|
@default false
|
*/
|
watch?: boolean;
|
|
/**
|
Enables experimental support for ES7 decorators.
|
|
@default false
|
*/
|
experimentalDecorators?: boolean;
|
|
/**
|
Emit design-type metadata for decorated declarations in source.
|
|
@default false
|
*/
|
emitDecoratorMetadata?: boolean;
|
|
/**
|
Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6).
|
|
@default ['AMD', 'System', 'ES6'].includes(module) ? 'classic' : 'node'
|
*/
|
moduleResolution?: 'classic' | 'node';
|
|
/**
|
Do not report errors on unused labels.
|
|
@default false
|
*/
|
allowUnusedLabels?: boolean;
|
|
/**
|
Report error when not all code paths in function return a value.
|
|
@default false
|
*/
|
noImplicitReturns?: boolean;
|
|
/**
|
Report errors for fallthrough cases in switch statement.
|
|
@default false
|
*/
|
noFallthroughCasesInSwitch?: boolean;
|
|
/**
|
Do not report errors on unreachable code.
|
|
@default false
|
*/
|
allowUnreachableCode?: boolean;
|
|
/**
|
Disallow inconsistently-cased references to the same file.
|
|
@default false
|
*/
|
forceConsistentCasingInFileNames?: boolean;
|
|
/**
|
Base directory to resolve non-relative module names.
|
*/
|
baseUrl?: string;
|
|
/**
|
Specify path mapping to be computed relative to baseUrl option.
|
*/
|
paths?: Record<string, string[]>;
|
|
/**
|
List of TypeScript language server plugins to load.
|
|
Requires TypeScript version 2.3 or later.
|
*/
|
plugins?: CompilerOptions.Plugin[];
|
|
/**
|
Specify list of root directories to be used when resolving modules.
|
*/
|
rootDirs?: string[];
|
|
/**
|
Specify list of directories for type definition files to be included.
|
|
Requires TypeScript version 2.0 or later.
|
*/
|
typeRoots?: string[];
|
|
/**
|
Type declaration files to be included in compilation.
|
|
Requires TypeScript version 2.0 or later.
|
*/
|
types?: string[];
|
|
/**
|
Enable tracing of the name resolution process.
|
|
@default false
|
*/
|
traceResolution?: boolean;
|
|
/**
|
Allow javascript files to be compiled.
|
|
@default false
|
*/
|
allowJs?: boolean;
|
|
/**
|
Do not truncate error messages.
|
|
@default false
|
*/
|
noErrorTruncation?: boolean;
|
|
/**
|
Allow default imports from modules with no default export. This does not affect code emit, just typechecking.
|
|
@default module === 'system' || esModuleInterop
|
*/
|
allowSyntheticDefaultImports?: boolean;
|
|
/**
|
Do not emit `'use strict'` directives in module output.
|
|
@default false
|
*/
|
noImplicitUseStrict?: boolean;
|
|
/**
|
Enable to list all emitted files.
|
|
Requires TypeScript version 2.0 or later.
|
|
@default false
|
*/
|
listEmittedFiles?: boolean;
|
|
/**
|
Disable size limit for JavaScript project.
|
|
Requires TypeScript version 2.0 or later.
|
|
@default false
|
*/
|
disableSizeLimit?: boolean;
|
|
/**
|
List of library files to be included in the compilation.
|
|
Requires TypeScript version 2.0 or later.
|
*/
|
lib?: CompilerOptions.Lib[];
|
|
/**
|
Enable strict null checks.
|
|
Requires TypeScript version 2.0 or later.
|
|
@default false
|
*/
|
strictNullChecks?: boolean;
|
|
/**
|
The maximum dependency depth to search under `node_modules` and load JavaScript files. Only applicable with `--allowJs`.
|
|
@default 0
|
*/
|
maxNodeModuleJsDepth?: number;
|
|
/**
|
Import emit helpers (e.g. `__extends`, `__rest`, etc..) from tslib.
|
|
Requires TypeScript version 2.1 or later.
|
|
@default false
|
*/
|
importHelpers?: boolean;
|
|
/**
|
Specify the JSX factory function to use when targeting React JSX emit, e.g. `React.createElement` or `h`.
|
|
Requires TypeScript version 2.1 or later.
|
|
@default 'React.createElement'
|
*/
|
jsxFactory?: string;
|
|
/**
|
Parse in strict mode and emit `'use strict'` for each source file.
|
|
Requires TypeScript version 2.1 or later.
|
|
@default false
|
*/
|
alwaysStrict?: boolean;
|
|
/**
|
Enable all strict type checking options.
|
|
Requires TypeScript version 2.3 or later.
|
|
@default false
|
*/
|
strict?: boolean;
|
|
/**
|
Enable stricter checking of of the `bind`, `call`, and `apply` methods on functions.
|
|
@default false
|
*/
|
strictBindCallApply?: boolean;
|
|
/**
|
Provide full support for iterables in `for-of`, spread, and destructuring when targeting `ES5` or `ES3`.
|
|
Requires TypeScript version 2.3 or later.
|
|
@default false
|
*/
|
downlevelIteration?: boolean;
|
|
/**
|
Report errors in `.js` files.
|
|
Requires TypeScript version 2.3 or later.
|
|
@default false
|
*/
|
checkJs?: boolean;
|
|
/**
|
Disable bivariant parameter checking for function types.
|
|
Requires TypeScript version 2.6 or later.
|
|
@default false
|
*/
|
strictFunctionTypes?: boolean;
|
|
/**
|
Ensure non-undefined class properties are initialized in the constructor.
|
|
Requires TypeScript version 2.7 or later.
|
|
@default false
|
*/
|
strictPropertyInitialization?: boolean;
|
|
/**
|
Emit `__importStar` and `__importDefault` helpers for runtime Babel ecosystem compatibility and enable `--allowSyntheticDefaultImports` for typesystem compatibility.
|
|
Requires TypeScript version 2.7 or later.
|
|
@default false
|
*/
|
esModuleInterop?: boolean;
|
|
/**
|
Allow accessing UMD globals from modules.
|
|
@default false
|
*/
|
allowUmdGlobalAccess?: boolean;
|
|
/**
|
Resolve `keyof` to string valued property names only (no numbers or symbols).
|
|
Requires TypeScript version 2.9 or later.
|
|
@default false
|
*/
|
keyofStringsOnly?: boolean;
|
|
/**
|
Emit ECMAScript standard class fields.
|
|
Requires TypeScript version 3.7 or later.
|
|
@default false
|
*/
|
useDefineForClassFields?: boolean;
|
|
/**
|
Generates a sourcemap for each corresponding `.d.ts` file.
|
|
Requires TypeScript version 2.9 or later.
|
|
@default false
|
*/
|
declarationMap?: boolean;
|
|
/**
|
Include modules imported with `.json` extension.
|
|
Requires TypeScript version 2.9 or later.
|
|
@default false
|
*/
|
resolveJsonModule?: boolean;
|
}
|
|
/**
|
Auto type (.d.ts) acquisition options for this project.
|
|
Requires TypeScript version 2.1 or later.
|
*/
|
export interface TypeAcquisition {
|
/**
|
Enable auto type acquisition.
|
*/
|
enable?: boolean;
|
|
/**
|
Specifies a list of type declarations to be included in auto type acquisition. For example, `['jquery', 'lodash']`.
|
*/
|
include?: string[];
|
|
/**
|
Specifies a list of type declarations to be excluded from auto type acquisition. For example, `['jquery', 'lodash']`.
|
*/
|
exclude?: string[];
|
}
|
|
export interface References {
|
/**
|
A normalized path on disk.
|
*/
|
path: string;
|
|
/**
|
The path as the user originally wrote it.
|
*/
|
originalPath?: string;
|
|
/**
|
True if the output of this reference should be prepended to the output of this project.
|
|
Only valid for `--outFile` compilations.
|
*/
|
prepend?: boolean;
|
|
/**
|
True if it is intended that this reference form a circularity.
|
*/
|
circular?: boolean;
|
}
|
}
|
|
export interface TsConfigJson {
|
/**
|
Instructs the TypeScript compiler how to compile `.ts` files.
|
*/
|
compilerOptions?: TsConfigJson.CompilerOptions;
|
|
/**
|
Auto type (.d.ts) acquisition options for this project.
|
|
Requires TypeScript version 2.1 or later.
|
*/
|
typeAcquisition?: TsConfigJson.TypeAcquisition;
|
|
/**
|
Enable Compile-on-Save for this project.
|
*/
|
compileOnSave?: boolean;
|
|
/**
|
Path to base configuration file to inherit from.
|
|
Requires TypeScript version 2.1 or later.
|
*/
|
extends?: string;
|
|
/**
|
If no `files` or `include` property is present in a `tsconfig.json`, the compiler defaults to including all files in the containing directory and subdirectories except those specified by `exclude`. When a `files` property is specified, only those files and those specified by `include` are included.
|
*/
|
files?: string[];
|
|
/**
|
Specifies a list of files to be excluded from compilation. The `exclude` property only affects the files included via the `include` property and not the `files` property.
|
|
Glob patterns require TypeScript version 2.0 or later.
|
*/
|
exclude?: string[];
|
|
/**
|
Specifies a list of glob patterns that match files to be included in compilation.
|
|
If no `files` or `include` property is present in a `tsconfig.json`, the compiler defaults to including all files in the containing directory and subdirectories except those specified by `exclude`.
|
|
Requires TypeScript version 2.0 or later.
|
*/
|
include?: string[];
|
|
/**
|
Referenced projects.
|
|
Requires TypeScript version 3.0 or later.
|
*/
|
references?: TsConfigJson.References[];
|
}
|