Try   HackMD

Docs review

TSConfig Oneliners

Questions to answer

  • What are the best one-liners to describe each tsconfig options?
  • Can the schema JSON be generated from the website?
  • Date: Aug 25th, Sept 2nd, Sept 23rd, Nov 4th 2020
  • Agenda
    1. Review the places where we show TS Config one-liners (schema, playground, tsconfig hovers in the site) 5min
    2. Go over gist one by one: 15min ~2 hours
    3. Open discussion: ~

Sources of info

Website:

Consolidated into a CSV in a gist

Action Items

  • Remove version references

Notes

  • allowJs - Allow JS files` to be a part of your program. Use checkJS to get errors from these files.
  • allowUmdGlobalAccess accessing UMD globals from modules
  • allowUnreachableCode Do not report errors on unreachable code.
  • allowUnusedLabels Do not report errors on unused labels.
  • assumeChangesOnlyAffectDirectDependencies - Have recompiles in 'incremental' and 'watch' assume that changes within a file will only affect files directly depending on it.
  • baseUrl - Base directory to resolve non-relative module names.
  • charset - Manually set the text encoding for reading files
  • checkJS - Report errors in type-checked JavaScript files.
  • composite - Enables constraints to allow the project, to be used building for with project references.
  • declarations - Generates .d.ts files from TypeScript and JavaScript files in your project.
  • Specify output directory for generated declaration files
  • Create sourcemaps for d.ts files
  • diagnostic - Output compiler performance information after building
  • disableReferencedProjectLoad - Reduces the number of projects loaded automatically by TypeScript
  • disableSizeLimit - Remove the 20mb memory cap on the TypeScript language server for JavaScript files
  • disableSolutionSearching - Opt a project out of multi-project reference checking when editing
  • disableSourceOfProjectReferenceRedirect - Use d.ts files as the source of truth for tooling between composite project boundries
  • eimtBOM Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.
  • emitDeclarationOnly - Only output d.ts files and not .js files
  • Emit design-type metadata for decorated declarations in source
  • Emit additional JS to ease support for importing commonjs modules, and enables 'allowSyntheticDefaultImports' for typesystem compatibility.
  • excludes: Filters results from the include option.
  • experimentalDecorators - Enable experimental support for TC39 stage 2 draft decorators based on the
  • extendedDiagnostics - Output more detailed compiler performance information after building
  • extends - Path, node module reference, or an array of either, to base configuration files to inherit from.
  • files - Include a list of files. Use includes for pattern support.
  • forceConsistentCasingInFileNames - Ensure that casing is correct in imports.
  • Emit a v8 CPU profile of the compiler run for debugging
  • 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
  • Specifies a list of glob patterns that match files to be included in compilation
  • Save .tsbuildinfo files to allow for incremental compilation of projects
  • inlinesourcemap Include sourcemap files inside the emitted JavaScript
  • inlinesources Include source code in the sourcemap files inside the emitted JavaScript
  • isolagedModules Ensure that each file can be safely transpiled without relying on other imports
  • jsx - JSX code generation
  • jsxFactory - The JSX factory function to use when targeting React JSX emit, e.g. 'React.createElement' or 'h'
  • jsxFragmentFactory Specify the JSX Fragment reference to use for fragements when targeting React JSX emit, e.g. 'React.Fragment' or 'Fragment'.
  • keyofStringsOnly - Make keyof only return strings instead of string, numbers or symbols. Legacy option.
  • lib - A list of bundled library declaration files which 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
  • locale - Set the language of the messaging from TypeScript, does not affect emit
  • mapRoot - Specifies the location where debugger should locate map files instead of generated locations
  • maxNodeModuleJsDepth - The maximum number of JS files to look search under node_modules and load JavaScript files without declaration files. Only applicable with allowJs.

(Write a sample app to look, also maybe update reference)

-module - Module code generation

( OK )

-moduleResolution - How TypeScript looks up a file based from a module specifier

-newLine - Set the newline character for emitting files
-noEmit - Do not emit files from a compilation
-noHelpers - Do not generate custom helper functions like __extends in compiled output.
-noEmitErrors - Do not emit files if any type checking errors were reported.

-noErrorTruncation - Do not truncate types in error messages
-noFallthroughCasesInSwitch - Report errors for fallthrough cases in switch statements.
-noImplicitAny - Error on expressions and declarations with an implied 'any' type.
-noImplicitReturns - Ensure that all codepaths explicitly return in a function
-noImplicitThis - Error when 'this' would be any
-noImplicitUseStrict - Do not add 'use strict' directives in emitted JS.
-noLib - Do not include any library files, including the default lib.d.ts.

- Sept 23rd

-noResolve - Do not use imports, requires or <references to expand the number of files TypeScript should add to a project.

-noStrictGenericChecks - Disable strict checking of generic signatures in function types.

-noUnusedLocals - Raise an error when a local variable isn't read
-noUnusedParameters - Raise an error when a function parameter isn't read
-out - Do not use this, use outFile instead
-outDir - Set an output folder for all emitted files
-outFile - Bundle all outputs into one .js file, and optionally one .d.ts file if declaration is true.
-path - A series of entries which re-maps imports to additional lookup locations
-plugins - A list of language service plugins to include
-preserveConstEnums - Do not erase const enum declarations in generated code
-preserveSymlinks - Correlates to the same flag in node. Do not resolve symlinks to their realpath.
-preserveWatchOutput - Do not wipe the console in watch mode
-pretty - Use color and formatting to make compiler errors easier to read
-reactNamespace - Specifies the object invoked for createElement only when targeting 'react' JSX emit
-references - An array of objects that specifies paths for projects. Used in project references.
-removeComments - Do not emit comments
-resolveJsonModule - Allow importing .json files
-rootDir- Sets the root directory for your source files, to be reflected in your outDir.
-rootDirs - Treat multiple folders as one when resolving modules.

- Oct 7th

  • skipDefaultLibCheck - Skips type checking .d.ts files which are included with TypeScript.

The original notes for this were wrong, there's a good writeup here but we think the deprecation isn't necessarily valid. There's a good point for using this flag.

  • skipLibCheck Skip type checking all .d.ts files
  • sourceMaps Creates source map files for emitted JavaScript files

- Oct 21st

  • sourceRoot Sets the root path for debuggers to find the reference source code

  • strict - Enable all strict type checking options

  • strictBindCallApply Checks that the arguments for bind, call, and apply methods match the original function

  • strictFunctionTypes Checks when assigning functions to ensure parameters and the return values are subtype-compatible

  • strictNullChecks When type checking take into account null and undefined

  • strictPropertyInitialization Checks for class properties which are declared but not set in the constructor

  • stripInternal Do not emit declarations which have '@internal' in their JSDoc comments.

  • suppressExcessPropertyErrors This disables reporting of excess property errors during the creation of object literals.

  • suppressImplicitAnyIndexErrors - Suppress noImplicitAny errors for indexing objects lacking index signatures

( relates to noImplicitAny, find when it was introduced too )

  • target Sets the JavaScript language version for emitted JavaScript and includes compatible library declarations

  • traceResolution Log paths when using the moduleResolution process

  • tsBuildInfoFile Set the folder for .tsbuildinfo incremental compilation files

( TODO: try make an example where this is setting a file specifically )

  • typeAcquisition Provides options for automatic acquisition of declaration files

Nov 4th

  • typeRoots - Specifies multiple folders which act like ./node_modules/@types
  • types - List type package names to be included without being referenced in a source file
  • useDefineForClassFields - Emit ECMAScript standard class fields
  • watchDirectory - Controls how directories are watched on systems that lack recursive file-watching functionality
  • watchFile - Controls how the TypeScript watch mode works.
  • charset - Does nothing. Used to allow for changing how files were read from disk.
  • composite - Enables constraints which allow a TypeScript project to be used with project references.
  • declaration - Generates .d.ts files from TypeScript and JavaScript files in your project.
  • disableSizeLimit - Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server
  • inlineSourceMap - Include sourcemaps inside the emitted JavaScript
  • inlineSources - Include source code in the sourcemaps inside the emitted JavaScript
  • jsxImportSource - The module specifier for importing the jsx factory functions when using jsx: react-jsx*
  • maxNodeModuleJsDepth - The maximum folder depth to check .js files from node_modules. Only applicable with allowJs.

TODO:

Ask Sheetal about:

  • disableSourceOfProjectReferenceRedirect

Ask Ron about:

  • downlevelIteration