Breaking Changes
@link
,@linkcode
and@linkplain
tags will now be resolved with TypeScript's link resolution by default. TheuseTsLinkResolution
option
can be used to turn this behavior off, but be aware that doing so will mean your links will be resolved differently by editor tooling and TypeDoc.- TypeDoc will no longer automatically load plugins from
node_modules
. Specify the--plugin
option to indicate which modules should be loaded. - The
packages
entry point strategy will now run TypeDoc in each provided package directory and then merge the results together.
The previouspackages
strategy has been preserved underlegacy-packages
and will be removed in 0.25. If the new strategy does not work
for your use case, please open an issue. - Removed
--logger
option, to disable all logging, set thelogLevel
option tonone
. - Dropped support for legacy
[[link]]
s, removed deprecatedReflection.findReflectionByName
. - Added
@overload
to default ignored tags.
API Breaking Changes
- The
label
property onReflection
has moved toComment
. - The default value of the
out
option has been changed from""
to"./docs"
, #2195. - Renamed
DeclarationReflection#version
toDeclarationReflection#projectVersion
to match property onProjectReflection
. - Removed unused
Reflection#originalName
. - Removed
Reflection#kindString
, useReflectionKind.singularString(reflection.kind)
orReflectionKind.pluralString(reflection.kind)
instead. - The
named-tuple-member
andtemplate-literal
type kind have been replaced withnamedTupleMember
andtemplateLiteral
, #2100. - Properties related to rendering are no longer stored on
Reflection
, includingurl
,anchor
,hasOwnDocument
, andcssClasses
. Application.bootstrap
will no longer load plugins. If you want to load plugins, useApplication.bootstrapWithPlugins
instead, #1635.- The options passed to
Application.bootstrap
will now be applied both before and after reading options files, which may cause a change in configuration
if using a custom script to run TypeDoc that includes some options, but other options are set in config files. - Moved
sources
property previously declared on baseReflection
class toDeclarationReflection
andSignatureReflection
. - Moved
relevanceBoost
fromContainerReflection
toDeclarationReflection
since setting it on the parent class has no effect. - Removed internal
ReferenceType.getSymbol
, reference types no longer reference thets.Symbol
to enable generation from serialized JSON. OptionsReader.priority
has been renamed toOptionsReader.order
to more accurately reflect how it works.ReferenceType
s which point to type parameters will now always be intentionally broken since they were never linked and should not be warned about when validating exports.ReferenceType
s now longer include anid
property for their target. They now instead include atarget
property.- Removed
Renderer.addExternalSymbolResolver
, useConverter.addExternalSymbolResolver
instead. - Removed
CallbackLogger
. - Removed
SerializeEventData
from serialization events. - A
PageEvent
is now required forgetRenderContext
. If caching the context object,page
must be updated whengetRenderContext
is called. PageEvent
no longer includes thetemplate
property. TheTheme.render
method is now expected to take the template to render the page with as its second argument.- Removed
secondaryNavigation
member onDefaultThemeRenderContext
. - Renamed
navigation
tosidebar
onDefaultThemeRenderContext
andnavigation.begin
/navigation.end
hooks tosidebar.begin
/sidebar.end
.
Features
- Added
--useTsLinkResolution
option (on by default) which tells TypeDoc to use TypeScript's@link
resolution. - Added
--jsDocCompatibility
option (on by default) which controls TypeDoc's automatic detection of code blocks in@example
and@default
tags. - Reworked default theme navigation to add support for a page table of contents, #1478, #2189.
- Added support for
@interface
on type aliases to tell TypeDoc to convert the fully resolved type as an interface, #1519 - Added support for
@namespace
on variable declarations to tell TypeDoc to convert the variable as a namespace, #2055. - Added support for
@prop
/@property
to specify documentation for a child property of a symbol, intended for use with@interface
. - TypeDoc will now produce more informative error messages for options which cannot be set from the cli, #2022.
- TypeDoc will now attempt to guess what option you may have meant if given an invalid option name.
- Plugins may now return a
Promise<void>
from theirload
function, #185. - TypeDoc now supports plugins written with ESM, #1635.
- Added
Renderer.preRenderAsyncJobs
andRenderer.postRenderAsyncJobs
, which may be used by plugins to perform async processing for rendering, #185.
Note: Conversion is still intentionally a synchronous process to ensure stability of converted projects between runs. - TypeDoc options may now be set under the
typedocOptions
key inpackage.json
, #2112. - Added
--cacheBust
option to tell TypeDoc to include include the generation time in files, #2124. - Added
--excludeReferences
option to tell TypeDoc to omit re-exports of a symbol already included from the documentation. - Introduced new render hooks
pageSidebar.begin
andpageSidebar.end
.
Bug Fixes
- TypeDoc will now ignore package.json files not containing a
name
field, #2190. - Fixed
@inheritDoc
on signatures (functions, methods, constructors, getters, setters) being unable to inherit from a non-signature. - Interfaces/classes created via extending a module will no longer contain variables/functions where the member should have been converted as properties/methods, #2150.
- TypeDoc will now ignore a leading
v
in versions, #2212. - Category titles now render with the same format in the page index and heading title, #2196.
- Fixed crash when using
typeof
on a reference with type arguments, #2220. - Fixed broken anchor links generated to signatures nested within objects.