npm typedoc 0.20.0
v0.20.0

latest releases: 0.25.13, 0.25.12, 0.25.11...
3 years ago

0.20.0 (2020-12-28)

Migration from previous versions

Version 0.20 completely reworks how documentation is generated by TypeDoc. In previous versions, there was --mode file and --mode modules, which documented files according to their content on the filesystem. This worked reasonably well before ES modules were commonly used, but was insufficient for the modern ecosystem. In 0.20, TypeDoc documents your project according to what you export.

With this in mind, there are several breaking changes that will likely effect you:

  1. TypeScript compiler options must be specified in a tsconfig.json file, they may not be passed directly to TypeDoc.
  2. Removed options - mode, excludeNotExported, includeDeclarations, ignoreCompilerErrors (#1403), entryPoint
  3. inputFiles has been renamed to entryPoints to better reflect its usage
  4. Existing third party themes may be broken due to changes to the type structure
  5. The behavior of exclude has changed, it is now only used to filter entry points if a directory is provided as the entry point.
  6. TypeDoc now uses Shiki instead of Highlight.js for syntax highlighting. Shiki is faster, about 10% of the size of Highlight.js, and makes it possible for future work to allow users to choose a light or dark theme. However, it does not support all of the same languages as Highlight.js. If you run typedoc --help, it will print a list of all supported highlighting languages.

The command line for most projects now should be fairly simple:

npx typedoc src/index.ts

If you have more than one entry point, TypeDoc will create a module for each entry point. The module name will be derived from the entry file name. If the derived name is not the desired name, you can use a module comment with the @module tag to change it:

/**
 * @module myLibrary
 */

Bug Fixes

  • A few of the issues with the type converter (6ff7fcd)
  • Accessor with a set signature was converted incorrectly (1200212)
  • Array types were converted incorrectly (c892c00)
  • Categorization was broken with a single entry point (7f6e924)
  • Change target back to ES2018 (671e6d3)
  • ConstructorType node support (7ba17f6)
  • Correct handling of arrays in generic constraints (d575dc0), closes #1408
  • Declaration merged namespaces sometimes produced multiple reflections (5de3bf5)
  • Fix bug in ReferenceType equality check (3f63956), closes #1383
  • Hidden module-namespaces (88fa674), closes #1396
  • isExternal flag wasn't set properly (0060eb7)
  • JSON schema had incorrect value types (26a9c0d), closes #1389
  • Lint (d75c67c)
  • Missing comments on variable functions (e15bcd6), closes #1421
  • Normalize unions (9f8375d), closes #571
  • Reintroduce support for index signatures (20a7d5f)
  • Resolve type parameters in concrete subclasses (85cd06d)
  • Somehow didn't save a file (33c2bc6)
  • docs: A typo in description of DefaultTheme.getMapping (#1416) (a4c3d9e)
  • perf: Only create extra programs when dealing with solution style tsconfigs (6525a7b)
  • Missing default exports (017fad1)
  • Reference types should always be given resolved symbols (1d6120f)
  • Rendering works again (17bf655)
  • Some issues with inheritence (033b1ae)
  • Support for specify a directory as an entry point (ac4c688)
  • Type converters threw on older TS versions (1161cb2)
  • TypeDoc should warn users about missing entry points (8c51af8)
  • We pick up all properties now (4845209)

Features

  • Add logLevel option (80c4524)
  • Automatically generate schema for typedoc.json (cd84548)
  • Colors in console output (49189de)
  • Initial attempt at support for project references (e1106dd), closes #1414
  • Mostly working library mode (bcbd401)
  • new option "markedOptions" (#1412) (2bf6e49)
  • Options may specify a validation function (#1398) (884332b)
  • Partial support for global files (9cb5b9c)
  • Support for [@module](https://github.com/module) tag (15cb73c)
  • Support for mapped types (1036069)
  • Support for the remaining literal types (695f5c7)
  • Support for TS 4.1 mapped types + string literal types (a32c976), closes #1397
  • Switch back to search.js (f0af1f1), closes #1339

API Breaking changes

  • Application.generateDocs, Application.generateJson now return a promise
  • Converter.EVENT_FILE_BEGIN has been removed - it no longer makes sense since re-exports are fully supported
  • "string-literal" type removed, there is now a single "literal" type that includes string literals, number literals, bigint literals, and null
  • context.fileNames has been removed
  • isExported / isConstructorProperty ReflectionFlags remvoed
  • Converter.EVENT_FUNCTION_IMPLEMENTATION removed - it was inappropriately used to perform some data extraction, which was unreliable since not all function declarations include an implementation
  • Converter.EVENT_BEGIN listeners may not access context.program. If they need access to a TS program, they should instead use context.programs and find the one they are interested in.

Thanks!

Thank you to everyone who helped test the 0.20 beta, and the following code contributors:

Don't miss a new typedoc release

NewReleases is sending notifications on new releases.