Skip to content

Instantly share code, notes, and snippets.

@merin83
Forked from ryanatkn/tsconfig.json
Created June 25, 2019 05:43
Show Gist options
  • Save merin83/f6e6f76e52c3768fadbf6c68290da7a6 to your computer and use it in GitHub Desktop.
Save merin83/f6e6f76e52c3768fadbf6c68290da7a6 to your computer and use it in GitHub Desktop.
A TypeScript 3.5 tsconfig.json with all options organized and with documentation comments
{
// Commented-out options have their default values.
// A lot of the organization could still be improved - suggestions are welcome.
"include": ["src/**/*"],
"exclude": ["node_modules/*"],
// "files": [], // A list of relative or absolute file paths to include.
// "extends": "", // A string containing a path to another configuration file to inherit from.
// "compileOnSave": false, // Signals to the IDE to generate all files for a given tsconfig.json upon saving.
"compilerOptions": {
// Main options
"target": "esnext", // Specify ECMAScript target version: 'es3' (default), 'es5', 'es2015', 'es2016', 'es2017','es2018' or 'esnext'.
"module": "esnext", // Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'.
"lib": ["esnext", "dom"], // Specify library files to be included in the compilation.
// "allowJs": false, // Allow javascript files to be compiled.
// "checkJs": false, // Report errors in .js files.
// "outFile": "./", // Concatenate and emit output to single file.
// "outDir": "./", // Redirect output structure to the directory.
// "rootDir": "./", // Specify the root directory of input files. Use to control the output directory structure with `--outDir`.
// "project": "", // Compile a project given a valid configuration file.
// Strict typechecking options
"strict": true, // Enable all strict type-checking options.
// "noImplicitAny": true, // Raise error on expressions and declarations with an implied 'any' type.
// "noImplicitThis": true, // Raise error on 'this' expressions with an implied 'any' type.
// "strictBindCallApply": true, // Enable stricter checking of of the `bind`, `call`, and `apply` methods on functions.
// "strictFunctionTypes": true, // Disable bivariant parameter checking for function types.
// "strictNullChecks": true, // In strict null checking mode, the null and undefined values are not in the domain of every type and are only assignable to themselves and any.
// "strictPropertyInitialization": true, // Ensure non-undefined class properties are initialized in the constructor. This option requires `--strictNullChecks` be enabled in order to take effect.
// "alwaysStrict": true, // Parse in strict mode and emit "use strict" for each source file.
// Additional checks
// "allowUnreachableCode": false, // Do not report errors on unreachable code.
// "allowUnusedLabels": false, // Do not report errors on unused labels.
"forceConsistentCasingInFileNames": true, // Disallow inconsistently-cased references to the same file.
// "noStrictGenericChecks": false, // Disable strict checking of generic signatures in function types.
"noUnusedLocals": true, // Report errors on unused locals.
"noUnusedParameters": true, // Report errors on unused parameters.
"noImplicitReturns": true, // Report error when not all code paths in function return a value.
"noFallthroughCasesInSwitch": true, // Report errors for fallthrough cases in switch statement.
// "skipLibCheck": false, // Skip type checking of all declaration files (*.d.ts).
// "suppressExcessPropertyErrors": false, // Suppress excess property checks for object literals.
// "suppressImplicitAnyIndexErrors": false, // Suppress noImplicitAny errors for indexing objects lacking index signatures.
// Module resolution options
"moduleResolution": "node", // Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6).
// "baseUrl": "./", // Base directory to resolve non-absolute module names.
// "paths": {}, // A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.
// "rootDirs": [], // List of root folders whose combined content represents the structure of the project at runtime.
// "typeRoots": [], // List of folders to include type definitions from.
"types": [], // Type declaration files to be included in compilation.
// "allowSyntheticDefaultImports": false // Allow default imports from modules with no default export. This does not affect code emit, just typechecking.
// "esModuleInterop": false, // Emit '__importStar' and '__importDefault' helpers for runtime babel ecosystem compatibility and enable '--allowSyntheticDefaultImports' for typesystem compatibility.
// "maxNodeModuleJsDepth": 0, // The maximum dependency depth to search under node_modules and load JavaScript files. Only applicable with --allowJs.
// "preserveSymlinks": false, // Do not resolve the real path of symlinks.
"resolveJsonModule": true // Include modules imported with '.json' extension.
// Emit options
// "declaration": false, // Generates corresponding '.d.ts' file.
// "declarationDir": "./", // Output directory for generated declaration files.
// "declarationMap": false, // Generates a sourcemap for each corresponding '.d.ts' file.
// "emitBOM": false, // Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.
// "emitDeclarationOnly": false, // Only emit ‘.d.ts’ declaration files.
// "importHelpers": false, // Import emit helpers from 'tslib'.
// "newLine": "LF", // Use the specified end of line sequence to be used when emitting files: "crlf" (windows) or "lf" (unix).”
// "noEmit": true, // Do not emit outputs.
// "noEmitHelpers": false, // Do not generate custom helper functions like __extends in compiled output.
// "noEmitOnError": false, // Do not emit outputs if any errors were reported.
// "noImplicitUseStrict": false, // Do not emit "use strict" directives in module output.
// "noResolve": false, // Do not add triple-slash references or module import targets to the list of compiled files.
// "preserveConstEnums": false, // Do not erase const enum declarations in generated code.
// "removeComments": false, // Remove all comments except copy-right header comments beginning with //!
// Source map options
// "sourceMap": false, // Generates corresponding '.map' file.
// "sourceRoot": "", // Specify the location where debugger should locate TypeScript files instead of source locations.
// "mapRoot": "", // Specify the location where debugger should locate map files instead of generated locations.
// "inlineSourceMap": true, // Emit a single file with source maps instead of having a separate file.
// "inlineSources": true, // Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.
// Compilation options
// "composite": true, // Enable project compilation: https://www.typescriptlang.org/docs/handbook/project-references.html
// "diagnostics": false, // Show diagnostic information.
// "incremental": true, // Enable incremental compilation by reading/writing information from prior compilations to a file on disk.
// "isolatedModules": false, // Transpile each file as a separate module (similar to 'ts.transpileModule').
// "listEmittedFiles": false, // Print names of generated files part of the compilation.
// "listFiles": true, // Print names of files part of the compilation.
// "noErrorTruncation": false, // Do not truncate error messages.
// "preserveWatchOutput": false, // Keep outdated console output in watch mode instead of clearing the screen.
// "traceResolution": false, // Enable tracing of the name resolution process.
// "tsBuildInfoFile": ".tsbuildinfo", // Specify file to store incremental compilation information.
// JSX options
// "jsx": "preserve", // Specify JSX code generation: 'preserve', 'react-native', or 'react'.
// "jsxFactory": "React.createElement", // Specify the JSX factory function to use when targeting react JSX emit, e.g. 'React.createElement' or 'h'.
// Experimental options
// "experimentalDecorators": true, // Enables experimental support for ES7 decorators.
// "emitDecoratorMetadata": true, // Enables experimental support for emitting type metadata for decorators.
// Other options
// "allowUmdGlobalAccess": true, // Allow accessing UMD globals from modules.
// "charset": "utf8", // The character set of the input files.
// "downlevelIteration": false, // Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'.
// "disableSizeLimit": false, // Disable size limitation on JavaScript project.
// "keyofStringsOnly": false, // Resolve 'keyof' to string valued property names only (no numbers or symbols).
// "noLib": false, // Do not include the default library file (lib.d.ts).
// "pretty": true, // Stylize errors and messages using color and context.
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment