Breaking Changes
- The
packages
andentryPoints
options have been combined.
To migrate configurations which usedpackages
, replacepackages
withentryPoints
and setentryPointStrategy
topackages
. - Renamed
disableOutputCheck
tocleanOutputDir
to more clearly reflect its behavior. - The
highlightTheme
option has been split intolightHighlightTheme
anddarkHighlightTheme
. - Removed poorly documented / poorly behaved
toc
option. - HTML output is now rendered with JSX instead of Handlebars, closes #1631.
This change provides major performance benefits, reducing rendering time by up to 10x for several benchmarked projects.
It also allows themes to be easily type checked, preventing mistakes when creating custom themes.
Removing Handlebars also fixed memory leaks when--watch
was specified due to Handlebar's caching mechanism.
This change breaks all existing custom themes, so a theme created for v0.21 or earlier will not work in v0.22.
See internal-docs/custom-themes.md for documentation on how to create a custom theme in v0.22. - Removed the minimal theme that has been mostly broken for a long time.
- Changed the default
entryPointStrategy
fromexpand
toresolve
. - Paths in config files will now be resolved relative to the config file instead of relative to the current working directory.
- Exclude patterns are now checked against files instead of against each part of the path as traversed, #1399.
This means that an exclude of**/someDir
will not exclude files in that directory. To exclude files in a directory, specify**/someDir/**
.
Features
- Added support for light/dark mode to the default theme, closes #1641.
- Added support for custom CSS with the new
customCss
option, closes #1060. - Added support for linking to third party documentation sites, closes #131. See internal-docs/third-party-symbols.md
for documentation on how to create a plugin which enables this.
Support for linking to MDN for global types is provided by typedoc-plugin-mdn-links. - Added
entryPointStrategy
to reduce confusion from new TypeDoc users on handling of entry points.
There are three possible options:Option Behavior resolve (default) Expects all entry points to be contained within the root level tsconfig project. If a directory is given, includes <directory>/index
as the entry point.expand Expects all entry points to be contained within the root level tsconfig project. If a directory is given, files within it are recursively expanded. This was the default behavior in v0.21. packages Corresponds to --packages
in v0.21, behaves as documented in the Monorepo section in the readme. - Added support for
typedocMain
in package.json when using thepackages
strategy for resolving entry points. - Produce warnings when documentation is missing exports, closes #1653. If using TypeDoc's API, this behavior is available through calling
application.validate(project)
. - Added support for detecting "
as const
enums", closes #1675. - Added
hideLegend
option, closes #1108. - Added performance measurements to debug logging (
--logLevel Verbose
) - String literal indexed access types will create links to their referencing member if possible, closes #1226.
Bug Fixes
- Support inclusion patterns when expanding input files, closes #1399.
- Arrow keys can no longer select hidden search results.
- The Legend header will no longer be included if there is nothing in the legend.
- If a non-function uses
@param
, the name will not be dropped when rendering, closes #1410.
API Breaking Changes
- TypeDoc now specifies the
"export"
key inpackage.json
, preventing plugins from importing internal paths.
TypeDoc should now export all necessary structures (potentially marked with@internal
if likely to change) from the root export. - The
ReflectionKind
values forProject
,Module
,Namespace
, andEnum
have changed. - Removed deprecated logger functions.
- Dropped support for legacy plugins which use
export=
. Plugins are now required to export aload
function. - Remove
TypeParameterType
, references to type parameters have produced aReferenceType
since v0.20.0. - Types no longer have a
clone
method. It inconsistently performed deep or shallow clones, and was not used by TypeDoc. - Types no longer contain an
equals
method. It was occasionally correct for medium-complexity types, and always incorrect for more complicated types.