1440 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			TypeScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			1440 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			TypeScript
		
	
	
		
			Executable File
		
	
	
	
	
| declare global {
 | |
| 	// eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
 | |
| 	interface SymbolConstructor {
 | |
| 		readonly observable: symbol;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| /**
 | |
| Returns a boolean for whether the two given types are equal.
 | |
| 
 | |
| @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
 | |
| @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
 | |
| 
 | |
| Use-cases:
 | |
| - If you want to make a conditional branch based on the result of a comparison of two types.
 | |
| 
 | |
| @example
 | |
| ```
 | |
| import type {IsEqual} from 'type-fest';
 | |
| 
 | |
| // This type returns a boolean for whether the given array includes the given item.
 | |
| // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
 | |
| type Includes<Value extends readonly any[], Item> =
 | |
| 	Value extends readonly [Value[0], ...infer rest]
 | |
| 		? IsEqual<Value[0], Item> extends true
 | |
| 			? true
 | |
| 			: Includes<rest, Item>
 | |
| 		: false;
 | |
| ```
 | |
| 
 | |
| @category Type Guard
 | |
| @category Utilities
 | |
| */
 | |
| type IsEqual<A, B> =
 | |
| 	(<G>() => G extends A & G | G ? 1 : 2) extends
 | |
| 	(<G>() => G extends B & G | G ? 1 : 2)
 | |
| 		? true
 | |
| 		: false;
 | |
| 
 | |
| /**
 | |
| Filter out keys from an object.
 | |
| 
 | |
| Returns `never` if `Exclude` is strictly equal to `Key`.
 | |
| Returns `never` if `Key` extends `Exclude`.
 | |
| Returns `Key` otherwise.
 | |
| 
 | |
| @example
 | |
| ```
 | |
| type Filtered = Filter<'foo', 'foo'>;
 | |
| //=> never
 | |
| ```
 | |
| 
 | |
| @example
 | |
| ```
 | |
| type Filtered = Filter<'bar', string>;
 | |
| //=> never
 | |
| ```
 | |
| 
 | |
| @example
 | |
| ```
 | |
| type Filtered = Filter<'bar', 'foo'>;
 | |
| //=> 'bar'
 | |
| ```
 | |
| 
 | |
| @see {Except}
 | |
| */
 | |
| type Filter<KeyType, ExcludeType> = IsEqual<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
 | |
| 
 | |
| type ExceptOptions = {
 | |
| 	/**
 | |
| 	Disallow assigning non-specified properties.
 | |
| 
 | |
| 	Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
 | |
| 
 | |
| 	@default false
 | |
| 	*/
 | |
| 	requireExactProps?: boolean;
 | |
| };
 | |
| 
 | |
| /**
 | |
| Create a type from an object type without certain keys.
 | |
| 
 | |
| We recommend setting the `requireExactProps` option to `true`.
 | |
| 
 | |
| This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
 | |
| 
 | |
| This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
 | |
| 
 | |
| @example
 | |
| ```
 | |
| import type {Except} from 'type-fest';
 | |
| 
 | |
| type Foo = {
 | |
| 	a: number;
 | |
| 	b: string;
 | |
| };
 | |
| 
 | |
| type FooWithoutA = Except<Foo, 'a'>;
 | |
| //=> {b: string}
 | |
| 
 | |
| const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
 | |
| //=> errors: 'a' does not exist in type '{ b: string; }'
 | |
| 
 | |
| type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
 | |
| //=> {a: number} & Partial<Record<"b", never>>
 | |
| 
 | |
| const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
 | |
| //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
 | |
| ```
 | |
| 
 | |
| @category Object
 | |
| */
 | |
| type Except<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions = {requireExactProps: false}> = {
 | |
| 	[KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType];
 | |
| } & (Options['requireExactProps'] extends true
 | |
| 	? Partial<Record<KeysType, never>>
 | |
| 	: {});
 | |
| 
 | |
| declare namespace TsConfigJson {
 | |
| 	namespace CompilerOptions {
 | |
| 		export type JSX =
 | |
| 			| 'preserve'
 | |
| 			| 'react'
 | |
| 			| 'react-jsx'
 | |
| 			| 'react-jsxdev'
 | |
| 			| 'react-native';
 | |
| 
 | |
| 		export type Module =
 | |
| 			| 'CommonJS'
 | |
| 			| 'AMD'
 | |
| 			| 'System'
 | |
| 			| 'UMD'
 | |
| 			| 'ES6'
 | |
| 			| 'ES2015'
 | |
| 			| 'ES2020'
 | |
| 			| 'ES2022'
 | |
| 			| 'ESNext'
 | |
| 			| 'Node16'
 | |
| 			| 'NodeNext'
 | |
| 			| 'Preserve'
 | |
| 			| 'None'
 | |
| 			// Lowercase alternatives
 | |
| 			| 'commonjs'
 | |
| 			| 'amd'
 | |
| 			| 'system'
 | |
| 			| 'umd'
 | |
| 			| 'es6'
 | |
| 			| 'es2015'
 | |
| 			| 'es2020'
 | |
| 			| 'es2022'
 | |
| 			| 'esnext'
 | |
| 			| 'node16'
 | |
| 			| 'nodenext'
 | |
| 			| 'preserve'
 | |
| 			| 'none';
 | |
| 
 | |
| 		export type NewLine =
 | |
| 			| 'CRLF'
 | |
| 			| 'LF'
 | |
| 			// Lowercase alternatives
 | |
| 			| 'crlf'
 | |
| 			| 'lf';
 | |
| 
 | |
| 		export type Target =
 | |
| 			| 'ES3'
 | |
| 			| 'ES5'
 | |
| 			| 'ES6'
 | |
| 			| 'ES2015'
 | |
| 			| 'ES2016'
 | |
| 			| 'ES2017'
 | |
| 			| 'ES2018'
 | |
| 			| 'ES2019'
 | |
| 			| 'ES2020'
 | |
| 			| 'ES2021'
 | |
| 			| 'ES2022'
 | |
| 			| 'ES2023'
 | |
| 			| 'ES2024'
 | |
| 			| 'ESNext'
 | |
| 			// Lowercase alternatives
 | |
| 			| 'es3'
 | |
| 			| 'es5'
 | |
| 			| 'es6'
 | |
| 			| 'es2015'
 | |
| 			| 'es2016'
 | |
| 			| 'es2017'
 | |
| 			| 'es2018'
 | |
| 			| 'es2019'
 | |
| 			| 'es2020'
 | |
| 			| 'es2021'
 | |
| 			| 'es2022'
 | |
| 			| 'es2023'
 | |
| 			| 'es2024'
 | |
| 			| 'esnext';
 | |
| 
 | |
| 		// eslint-disable-next-line unicorn/prevent-abbreviations
 | |
| 		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.ArrayBuffer'
 | |
| 			| 'ES2017.Date'
 | |
| 			| 'ES2017.Intl'
 | |
| 			| 'ES2017.Object'
 | |
| 			| 'ES2017.SharedMemory'
 | |
| 			| 'ES2017.String'
 | |
| 			| 'ES2017.TypedArrays'
 | |
| 			| 'ES2018'
 | |
| 			| 'ES2018.AsyncGenerator'
 | |
| 			| 'ES2018.AsyncIterable'
 | |
| 			| 'ES2018.Intl'
 | |
| 			| 'ES2018.Promise'
 | |
| 			| 'ES2018.Regexp'
 | |
| 			| 'ES2019'
 | |
| 			| 'ES2019.Array'
 | |
| 			| 'ES2019.Object'
 | |
| 			| 'ES2019.String'
 | |
| 			| 'ES2019.Symbol'
 | |
| 			| 'ES2020'
 | |
| 			| 'ES2020.BigInt'
 | |
| 			| 'ES2020.Promise'
 | |
| 			| 'ES2020.String'
 | |
| 			| 'ES2020.Symbol.WellKnown'
 | |
| 			| 'ES2020.SharedMemory'
 | |
| 			| 'ES2020.Intl'
 | |
| 			| 'ES2021'
 | |
| 			| 'ES2021.Intl'
 | |
| 			| 'ES2021.Promise'
 | |
| 			| 'ES2021.String'
 | |
| 			| 'ES2021.WeakRef'
 | |
| 			| 'ES2022'
 | |
| 			| 'ES2022.Array'
 | |
| 			| 'ES2022.Error'
 | |
| 			| 'ES2022.Intl'
 | |
| 			| 'ES2022.Object'
 | |
| 			| 'ES2022.RegExp'
 | |
| 			| 'ES2022.String'
 | |
| 			| 'ES2023'
 | |
| 			| 'ES2023.Array'
 | |
| 			| 'ES2023.Collection'
 | |
| 			| 'ES2023.Intl'
 | |
| 			| 'ES2024'
 | |
| 			| 'ES2024.ArrayBuffer'
 | |
| 			| 'ES2024.Collection'
 | |
| 			| 'ES2024.Object'
 | |
| 			| 'ES2024.Promise'
 | |
| 			| 'ES2024.Regexp'
 | |
| 			| 'ES2024.SharedMemory'
 | |
| 			| 'ES2024.String'
 | |
| 			| 'ESNext'
 | |
| 			| 'ESNext.Array'
 | |
| 			| 'ESNext.AsyncIterable'
 | |
| 			| 'ESNext.BigInt'
 | |
| 			| 'ESNext.Collection'
 | |
| 			| 'ESNext.Decorators'
 | |
| 			| 'ESNext.Disposable'
 | |
| 			| 'ESNext.Intl'
 | |
| 			| 'ESNext.Iterator'
 | |
| 			| 'ESNext.Promise'
 | |
| 			| 'ESNext.String'
 | |
| 			| 'ESNext.Symbol'
 | |
| 			| 'ESNext.WeakRef'
 | |
| 			| 'DOM'
 | |
| 			| 'DOM.Iterable'
 | |
| 			| 'ScriptHost'
 | |
| 			| 'WebWorker'
 | |
| 			| 'WebWorker.AsyncIterable'
 | |
| 			| 'WebWorker.ImportScripts'
 | |
| 			| 'WebWorker.Iterable'
 | |
| 			// 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.arraybuffer'
 | |
| 			| 'es2017.date'
 | |
| 			| 'es2017.intl'
 | |
| 			| 'es2017.object'
 | |
| 			| 'es2017.sharedmemory'
 | |
| 			| 'es2017.string'
 | |
| 			| 'es2017.typedarrays'
 | |
| 			| 'es2018'
 | |
| 			| 'es2018.asyncgenerator'
 | |
| 			| 'es2018.asynciterable'
 | |
| 			| 'es2018.intl'
 | |
| 			| 'es2018.promise'
 | |
| 			| 'es2018.regexp'
 | |
| 			| 'es2019'
 | |
| 			| 'es2019.array'
 | |
| 			| 'es2019.object'
 | |
| 			| 'es2019.string'
 | |
| 			| 'es2019.symbol'
 | |
| 			| 'es2020'
 | |
| 			| 'es2020.bigint'
 | |
| 			| 'es2020.promise'
 | |
| 			| 'es2020.string'
 | |
| 			| 'es2020.symbol.wellknown'
 | |
| 			| 'es2020.sharedmemory'
 | |
| 			| 'es2020.intl'
 | |
| 			| 'es2021'
 | |
| 			| 'es2021.intl'
 | |
| 			| 'es2021.promise'
 | |
| 			| 'es2021.string'
 | |
| 			| 'es2021.weakref'
 | |
| 			| 'es2022'
 | |
| 			| 'es2022.array'
 | |
| 			| 'es2022.error'
 | |
| 			| 'es2022.intl'
 | |
| 			| 'es2022.object'
 | |
| 			| 'es2022.regexp'
 | |
| 			| 'es2022.string'
 | |
| 			| 'es2023'
 | |
| 			| 'es2023.array'
 | |
| 			| 'es2023.collection'
 | |
| 			| 'es2023.intl'
 | |
| 			| 'es2024'
 | |
| 			| 'es2024.arraybuffer'
 | |
| 			| 'es2024.collection'
 | |
| 			| 'es2024.object'
 | |
| 			| 'es2024.promise'
 | |
| 			| 'es2024.regexp'
 | |
| 			| 'es2024.sharedmemory'
 | |
| 			| 'es2024.string'
 | |
| 			| 'esnext'
 | |
| 			| 'esnext.array'
 | |
| 			| 'esnext.asynciterable'
 | |
| 			| 'esnext.bigint'
 | |
| 			| 'esnext.collection'
 | |
| 			| 'esnext.decorators'
 | |
| 			| 'esnext.disposable'
 | |
| 			| 'esnext.intl'
 | |
| 			| 'esnext.iterator'
 | |
| 			| 'esnext.promise'
 | |
| 			| 'esnext.string'
 | |
| 			| 'esnext.symbol'
 | |
| 			| 'esnext.weakref'
 | |
| 			| 'dom'
 | |
| 			| 'dom.iterable'
 | |
| 			| 'scripthost'
 | |
| 			| 'webworker'
 | |
| 			| 'webworker.asynciterable'
 | |
| 			| 'webworker.importscripts'
 | |
| 			| 'webworker.iterable';
 | |
| 
 | |
| 		export type Plugin = {
 | |
| 			/**
 | |
| 			Plugin name.
 | |
| 			*/
 | |
| 			name: string;
 | |
| 		};
 | |
| 
 | |
| 		export type ImportsNotUsedAsValues =
 | |
| 			| 'remove'
 | |
| 			| 'preserve'
 | |
| 			| 'error';
 | |
| 
 | |
| 		export type FallbackPolling =
 | |
| 			| 'fixedPollingInterval'
 | |
| 			| 'priorityPollingInterval'
 | |
| 			| 'dynamicPriorityPolling'
 | |
| 			| 'fixedInterval'
 | |
| 			| 'priorityInterval'
 | |
| 			| 'dynamicPriority'
 | |
| 			| 'fixedChunkSize';
 | |
| 
 | |
| 		export type WatchDirectory =
 | |
| 			| 'useFsEvents'
 | |
| 			| 'fixedPollingInterval'
 | |
| 			| 'dynamicPriorityPolling'
 | |
| 			| 'fixedChunkSizePolling';
 | |
| 
 | |
| 		export type WatchFile =
 | |
| 			| 'fixedPollingInterval'
 | |
| 			| 'priorityPollingInterval'
 | |
| 			| 'dynamicPriorityPolling'
 | |
| 			| 'useFsEvents'
 | |
| 			| 'useFsEventsOnParentDirectory'
 | |
| 			| 'fixedChunkSizePolling';
 | |
| 
 | |
| 		export type ModuleResolution =
 | |
| 			| 'classic'
 | |
| 			| 'node'
 | |
| 			| 'node10'
 | |
| 			| 'node16'
 | |
| 			| 'nodenext'
 | |
| 			| 'bundler'
 | |
| 			// Pascal-cased alternatives
 | |
| 			| 'Classic'
 | |
| 			| 'Node'
 | |
| 			| 'Node10'
 | |
| 			| 'Node16'
 | |
| 			| 'NodeNext'
 | |
| 			| 'Bundler';
 | |
| 
 | |
| 		export type ModuleDetection =
 | |
| 			| 'auto'
 | |
| 			| 'legacy'
 | |
| 			| 'force';
 | |
| 
 | |
| 		export type IgnoreDeprecations = '5.0';
 | |
| 	}
 | |
| 
 | |
| 	export type CompilerOptions = {
 | |
| 		/**
 | |
| 		The character set of the input files.
 | |
| 
 | |
| 		@default 'utf8'
 | |
| 		@deprecated This option will be removed in TypeScript 5.5.
 | |
| 		*/
 | |
| 		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.
 | |
| 		*/
 | |
| 		declarationDir?: string;
 | |
| 
 | |
| 		/**
 | |
| 		Show diagnostic information.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		diagnostics?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Reduce the number of projects loaded automatically by TypeScript.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		disableReferencedProjectLoad?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Enforces using indexed accessors for keys declared using an indexed type.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		noPropertyAccessFromIndexSignature?: 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;
 | |
| 
 | |
| 		/**
 | |
| 		Differentiate between undefined and not present when type checking.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		exactOptionalPropertyTypes?: 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 what JSX code is generated.
 | |
| 
 | |
| 		@default 'preserve'
 | |
| 		*/
 | |
| 		jsx?: CompilerOptions.JSX;
 | |
| 
 | |
| 		/**
 | |
| 		Specifies the object invoked for `createElement` and `__spread` when targeting `'react'` JSX emit.
 | |
| 
 | |
| 		@default 'React'
 | |
| 		*/
 | |
| 		reactNamespace?: string;
 | |
| 
 | |
| 		/**
 | |
| 		Specify the JSX factory function to use when targeting React JSX emit, e.g. `React.createElement` or `h`.
 | |
| 
 | |
| 		@default 'React.createElement'
 | |
| 		*/
 | |
| 		jsxFactory?: string;
 | |
| 
 | |
| 		/**
 | |
| 		Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.
 | |
| 
 | |
| 		@default 'React.Fragment'
 | |
| 		*/
 | |
| 		jsxFragmentFactory?: string;
 | |
| 
 | |
| 		/**
 | |
| 		Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.
 | |
| 
 | |
| 		@default 'react'
 | |
| 		*/
 | |
| 		jsxImportSource?: 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 module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6).
 | |
| 
 | |
| 		@default ['AMD', 'System', 'ES6'].includes(module) ? 'classic' : 'node'
 | |
| 		*/
 | |
| 		moduleResolution?: CompilerOptions.ModuleResolution;
 | |
| 
 | |
| 		/**
 | |
| 		Specifies the end of line sequence to be used when emitting files: 'crlf' (Windows) or 'lf' (Unix).
 | |
| 
 | |
| 		@default 'LF'
 | |
| 		*/
 | |
| 		newLine?: CompilerOptions.NewLine;
 | |
| 
 | |
| 		/**
 | |
| 		Disable full type checking (only critical parse and emit errors will be reported).
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		noCheck?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		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.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		noUnusedLocals?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Report errors on unused parameters.
 | |
| 
 | |
| 		@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
 | |
| 		@deprecated This option will be removed in TypeScript 5.5.
 | |
| 		*/
 | |
| 		noStrictGenericChecks?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		@deprecated use `skipLibCheck` instead.
 | |
| 		*/
 | |
| 		skipDefaultLibCheck?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Skip type checking of declaration files.
 | |
| 
 | |
| 		@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;
 | |
| 
 | |
| 		/**
 | |
| 		Require sufficient annotation on exports so other tools can trivially generate declaration files.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		isolatedDeclarations?: 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
 | |
| 		@deprecated This option will be removed in TypeScript 5.5.
 | |
| 		*/
 | |
| 		suppressExcessPropertyErrors?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Suppress noImplicitAny errors for indexing objects lacking index signatures.
 | |
| 
 | |
| 		@default false
 | |
| 		@deprecated This option will be removed in TypeScript 5.5.
 | |
| 		*/
 | |
| 		suppressImplicitAnyIndexErrors?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Do not emit declarations for code that has an `@internal` annotation.
 | |
| 		*/
 | |
| 		stripInternal?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Specify ECMAScript target version.
 | |
| 
 | |
| 		@default 'es3'
 | |
| 		*/
 | |
| 		target?: CompilerOptions.Target;
 | |
| 
 | |
| 		/**
 | |
| 		Default catch clause variables as `unknown` instead of `any`.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		useUnknownInCatchVariables?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Watch input files.
 | |
| 
 | |
| 		@default false
 | |
| 		@deprecated Use watchOptions instead.
 | |
| 		*/
 | |
| 		watch?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Specify the polling strategy to use when the system runs out of or doesn't support native file watchers.
 | |
| 
 | |
| 		@deprecated Use watchOptions.fallbackPolling instead.
 | |
| 		*/
 | |
| 		fallbackPolling?: CompilerOptions.FallbackPolling;
 | |
| 
 | |
| 		/**
 | |
| 		Specify the strategy for watching directories under systems that lack recursive file-watching functionality.
 | |
| 
 | |
| 		@default 'useFsEvents'
 | |
| 		@deprecated Use watchOptions.watchDirectory instead.
 | |
| 		*/
 | |
| 		watchDirectory?: CompilerOptions.WatchDirectory;
 | |
| 
 | |
| 		/**
 | |
| 		Specify the strategy for watching individual files.
 | |
| 
 | |
| 		@default 'useFsEvents'
 | |
| 		@deprecated Use watchOptions.watchFile instead.
 | |
| 		*/
 | |
| 		watchFile?: CompilerOptions.WatchFile;
 | |
| 
 | |
| 		/**
 | |
| 		Enables experimental support for ES7 decorators.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		experimentalDecorators?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Emit design-type metadata for decorated declarations in source.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		emitDecoratorMetadata?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		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;
 | |
| 
 | |
| 		/**
 | |
| 		Add `undefined` to a type when accessed using an index.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		noUncheckedIndexedAccess?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Report error if failed to find a source file for a side effect import.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		noUncheckedSideEffectImports?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Report errors for fallthrough cases in switch statement.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		noFallthroughCasesInSwitch?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Ensure overriding members in derived classes are marked with an override modifier.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		noImplicitOverride?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Do not report errors on unreachable code.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		allowUnreachableCode?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Disallow inconsistently-cased references to the same file.
 | |
| 
 | |
| 		@default true
 | |
| 		*/
 | |
| 		forceConsistentCasingInFileNames?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Emit a v8 CPU profile of the compiler run for debugging.
 | |
| 
 | |
| 		@default 'profile.cpuprofile'
 | |
| 		*/
 | |
| 		generateCpuProfile?: string;
 | |
| 
 | |
| 		/**
 | |
| 		Generates an event trace and a list of types.
 | |
| 		*/
 | |
| 		generateTrace?: 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.
 | |
| 		*/
 | |
| 		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.
 | |
| 		*/
 | |
| 		typeRoots?: string[];
 | |
| 
 | |
| 		/**
 | |
| 		Type declaration files to be included in compilation.
 | |
| 		*/
 | |
| 		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
 | |
| 		@deprecated This option will be removed in TypeScript 5.5.
 | |
| 		*/
 | |
| 		noImplicitUseStrict?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Enable to list all emitted files.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		listEmittedFiles?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Disable size limit for JavaScript project.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		disableSizeLimit?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		List of library files to be included in the compilation.
 | |
| 		*/
 | |
| 		lib?: CompilerOptions.Lib[];
 | |
| 
 | |
| 		/**
 | |
| 		Enable strict null checks.
 | |
| 
 | |
| 		@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.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		importHelpers?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Specify emit/checking behavior for imports that are only used for types.
 | |
| 
 | |
| 		@default 'remove'
 | |
| 		@deprecated Use `verbatimModuleSyntax` instead.
 | |
| 		*/
 | |
| 		importsNotUsedAsValues?: CompilerOptions.ImportsNotUsedAsValues;
 | |
| 
 | |
| 		/**
 | |
| 		Parse in strict mode and emit `'use strict'` for each source file.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		alwaysStrict?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Enable all strict type checking options.
 | |
| 
 | |
| 		@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`.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		downlevelIteration?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Report errors in `.js` files.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		checkJs?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Built-in iterators are instantiated with a `TReturn` type of undefined instead of `any`.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		strictBuiltinIteratorReturn?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Disable bivariant parameter checking for function types.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		strictFunctionTypes?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Ensure non-undefined class properties are initialized in the constructor.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		strictPropertyInitialization?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Emit `__importStar` and `__importDefault` helpers for runtime Babel ecosystem compatibility and enable `--allowSyntheticDefaultImports` for typesystem compatibility.
 | |
| 
 | |
| 		@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).
 | |
| 
 | |
| 		@default false
 | |
| 		@deprecated This option will be removed in TypeScript 5.5.
 | |
| 		*/
 | |
| 		keyofStringsOnly?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Emit ECMAScript standard class fields.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		useDefineForClassFields?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Generates a sourcemap for each corresponding `.d.ts` file.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		declarationMap?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Include modules imported with `.json` extension.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		resolveJsonModule?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		assumeChangesOnlyAffectDirectDependencies?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Output more detailed compiler performance information after building.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		extendedDiagnostics?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Print names of files that are part of the compilation and then stop processing.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		listFilesOnly?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Disable preferring source files instead of declaration files when referencing composite projects.
 | |
| 
 | |
| 		@default true if composite, false otherwise
 | |
| 		*/
 | |
| 		disableSourceOfProjectReferenceRedirect?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Opt a project out of multi-project reference checking when editing.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		disableSolutionSearching?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Print names of files which TypeScript sees as a part of your project and the reason they are part of the compilation.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		explainFiles?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Preserve unused imported values in the JavaScript output that would otherwise be removed.
 | |
| 
 | |
| 		@default true
 | |
| 		@deprecated Use `verbatimModuleSyntax` instead.
 | |
| 		*/
 | |
| 		preserveValueImports?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		List of file name suffixes to search when resolving a module.
 | |
| 		*/
 | |
| 		moduleSuffixes?: string[];
 | |
| 
 | |
| 		/**
 | |
| 		Control what method is used to detect module-format JS files.
 | |
| 
 | |
| 		@default 'auto'
 | |
| 		*/
 | |
| 		moduleDetection?: CompilerOptions.ModuleDetection;
 | |
| 
 | |
| 		/**
 | |
| 		Allows TypeScript files to import each other with a TypeScript-specific extension like .ts, .mts, or .tsx.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		allowImportingTsExtensions?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Forces TypeScript to consult the exports field of package.json files if it ever reads from a package in node_modules.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		resolvePackageJsonExports?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Forces TypeScript to consult the imports field of package.json files when performing a lookup that starts with # from a file whose ancestor directory contains a package.json.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		resolvePackageJsonImports?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Suppress errors for file formats that TypeScript does not understand.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		allowArbitraryExtensions?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		List of additional conditions that should succeed when TypeScript resolves from package.json.
 | |
| 		*/
 | |
| 		customConditions?: string[];
 | |
| 
 | |
| 		/**
 | |
| 		Anything that uses the type modifier is dropped entirely.
 | |
| 
 | |
| 		@default false
 | |
| 		*/
 | |
| 		verbatimModuleSyntax?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Suppress deprecation warnings
 | |
| 		*/
 | |
| 		ignoreDeprecations?: CompilerOptions.IgnoreDeprecations;
 | |
| 	};
 | |
| 
 | |
| 	namespace WatchOptions {
 | |
| 		export type WatchFileKind =
 | |
| 			| 'FixedPollingInterval'
 | |
| 			| 'PriorityPollingInterval'
 | |
| 			| 'DynamicPriorityPolling'
 | |
| 			| 'FixedChunkSizePolling'
 | |
| 			| 'UseFsEvents'
 | |
| 			| 'UseFsEventsOnParentDirectory';
 | |
| 
 | |
| 		export type WatchDirectoryKind =
 | |
| 			| 'UseFsEvents'
 | |
| 			| 'FixedPollingInterval'
 | |
| 			| 'DynamicPriorityPolling'
 | |
| 			| 'FixedChunkSizePolling';
 | |
| 
 | |
| 		export type PollingWatchKind =
 | |
| 			| 'FixedInterval'
 | |
| 			| 'PriorityInterval'
 | |
| 			| 'DynamicPriority'
 | |
| 			| 'FixedChunkSize';
 | |
| 	}
 | |
| 
 | |
| 	export type WatchOptions = {
 | |
| 
 | |
| 		/**
 | |
| 		Specify the strategy for watching individual files.
 | |
| 
 | |
| 		@default 'UseFsEvents'
 | |
| 		*/
 | |
| 		watchFile?: WatchOptions.WatchFileKind | Lowercase<WatchOptions.WatchFileKind>;
 | |
| 
 | |
| 		/**
 | |
| 		Specify the strategy for watching directories under systems that lack recursive file-watching functionality.
 | |
| 
 | |
| 		@default 'UseFsEvents'
 | |
| 		*/
 | |
| 		watchDirectory?: WatchOptions.WatchDirectoryKind | Lowercase<WatchOptions.WatchDirectoryKind>;
 | |
| 
 | |
| 		/**
 | |
| 		Specify the polling strategy to use when the system runs out of or doesn't support native file watchers.
 | |
| 		*/
 | |
| 		fallbackPolling?: WatchOptions.PollingWatchKind | Lowercase<WatchOptions.PollingWatchKind>;
 | |
| 
 | |
| 		/**
 | |
| 		Enable synchronous updates on directory watchers for platforms that don't support recursive watching natively.
 | |
| 		*/
 | |
| 		synchronousWatchDirectory?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		Specifies a list of directories to exclude from watch
 | |
| 		*/
 | |
| 		excludeDirectories?: string[];
 | |
| 
 | |
| 		/**
 | |
| 		Specifies a list of files to exclude from watch
 | |
| 		*/
 | |
| 		excludeFiles?: string[];
 | |
| 	};
 | |
| 
 | |
| 	/**
 | |
| 	Auto type (.d.ts) acquisition options for this project.
 | |
| 	*/
 | |
| 	export type 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[];
 | |
| 
 | |
| 		/**
 | |
| 		Disable infering what types should be added based on filenames in a project.
 | |
| 		*/
 | |
| 		disableFilenameBasedTypeAcquisition?: boolean;
 | |
| 	};
 | |
| 
 | |
| 	export type 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.
 | |
| 		@deprecated This option will be removed in TypeScript 5.5.
 | |
| 		*/
 | |
| 		prepend?: boolean;
 | |
| 
 | |
| 		/**
 | |
| 		True if it is intended that this reference form a circularity.
 | |
| 		*/
 | |
| 		circular?: boolean;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| /**
 | |
| Type for [TypeScript's `tsconfig.json` file](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) (TypeScript 3.7).
 | |
| 
 | |
| @category File
 | |
| */
 | |
| type TsConfigJson = {
 | |
| 	/**
 | |
| 	Instructs the TypeScript compiler how to compile `.ts` files.
 | |
| 	*/
 | |
| 	compilerOptions?: TsConfigJson.CompilerOptions;
 | |
| 
 | |
| 	/**
 | |
| 	Instructs the TypeScript compiler how to watch files.
 | |
| 	*/
 | |
| 	watchOptions?: TsConfigJson.WatchOptions;
 | |
| 
 | |
| 	/**
 | |
| 	Auto type (.d.ts) acquisition options for this project.
 | |
| 	*/
 | |
| 	typeAcquisition?: TsConfigJson.TypeAcquisition;
 | |
| 
 | |
| 	/**
 | |
| 	Enable Compile-on-Save for this project.
 | |
| 	*/
 | |
| 	compileOnSave?: boolean;
 | |
| 
 | |
| 	/**
 | |
| 	Path to base configuration file to inherit from.
 | |
| 	*/
 | |
| 	extends?: string | 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`.
 | |
| 	*/
 | |
| 	include?: string[];
 | |
| 
 | |
| 	/**
 | |
| 	Referenced projects.
 | |
| 	*/
 | |
| 	references?: TsConfigJson.References[];
 | |
| };
 | |
| 
 | |
| type TsConfigJsonResolved = Except<TsConfigJson, 'extends'>;
 | |
| type TsConfigResult = {
 | |
|     /**
 | |
|      * The path to the tsconfig.json file
 | |
|      */
 | |
|     path: string;
 | |
|     /**
 | |
|      * The resolved tsconfig.json file
 | |
|      */
 | |
|     config: TsConfigJsonResolved;
 | |
| };
 | |
| type Cache<value = any> = Map<string, value>;
 | |
| 
 | |
| /**
 | |
|  * Finds a tsconfig file, defaulting to `tsconfig.json`, starting from a given path.
 | |
|  *
 | |
|  * @param searchPath Starting directory (default: `process.cwd()`).
 | |
|  * @param configName Config file name (default: `tsconfig.json`).
 | |
|  * @param cache Cache for previous results (default: new `Map()`).
 | |
|  * @returns The tsconfig file path and parsed contents, or `null` if not found.
 | |
|  */
 | |
| declare const getTsconfig: (searchPath?: string, configName?: string, cache?: Cache) => TsConfigResult | null;
 | |
| 
 | |
| /**
 | |
|  * Parses a tsconfig file at a given path
 | |
|  *
 | |
|  * @param tsconfigPath - Path to the tsconfig file.
 | |
|  * @param cache - Cache for storing parsed tsconfig results (default: new `Map()`).
 | |
|  * @returns The parsed and resolved tsconfig JSON.
 | |
|  */
 | |
| declare const parseTsconfig: (tsconfigPath: string, cache?: Cache<string>) => TsConfigJsonResolved;
 | |
| 
 | |
| /**
 | |
|  * Reference:
 | |
|  * https://github.com/microsoft/TypeScript/blob/3ccbe804f850f40d228d3c875be952d94d39aa1d/src/compiler/moduleNameResolver.ts#L2465
 | |
|  */
 | |
| declare const createPathsMatcher: (tsconfig: TsConfigResult) => ((specifier: string) => string[]) | null;
 | |
| 
 | |
| type FileMatcher = (filePath: string) => (TsConfigJsonResolved | undefined);
 | |
| declare const createFilesMatcher: ({ config, path: tsconfigPath, }: TsConfigResult, caseSensitivePaths?: boolean) => FileMatcher;
 | |
| 
 | |
| export { type Cache, type FileMatcher, TsConfigJson, type TsConfigJsonResolved, type TsConfigResult, createFilesMatcher, createPathsMatcher, getTsconfig, parseTsconfig };
 |