Interface TypeDocOptionMap

Describes all TypeDoc options. Used internally to provide better types when fetching options. External consumers should likely use TypeDocOptions instead.

If writing a plugin, you may find it useful to use declaration merging to add your options to this interface so that you have autocomplete when using app.options.getValue.

declare module "typedoc" {
export interface TypeDocOptionMap {
pluginOption: string[];
}
}
interface TypeDocOptionMap {
    alwaysCreateEntryPointModule: boolean;
    basePath: string;
    blockTags: `@${string}`[];
    cacheBust: boolean;
    cascadedModifierTags: `@${string}`[];
    categorizeByGroup: boolean;
    categoryOrder: string[];
    cleanOutputDir: boolean;
    cname: string;
    commentStyle: {
        All: "all";
        Block: "block";
        JSDoc: "jsdoc";
        Line: "line";
    };
    compilerOptions: unknown;
    customCss: string;
    customFooterHtml: string;
    customFooterHtmlDisableWrapper: boolean;
    customJs: string;
    darkHighlightTheme: BundledTheme;
    defaultCategory: string;
    disableGit: boolean;
    disableSources: boolean;
    emit: {
        both: "both";
        docs: "docs";
        none: "none";
    };
    entryPoints: string[];
    entryPointStrategy: {
        Expand: "expand";
        Merge: "merge";
        Packages: "packages";
        Resolve: "resolve";
    };
    exclude: string[];
    excludeCategories: string[];
    excludeExternals: boolean;
    excludeInternal: boolean;
    excludeNotDocumented: boolean;
    excludeNotDocumentedKinds: KindString[];
    excludePrivate: boolean;
    excludeProtected: boolean;
    excludeReferences: boolean;
    excludeTags: `@${string}`[];
    externalPattern: string[];
    externalSymbolLinkMappings: ManuallyValidatedOption<Record<string, Record<string, string>>>;
    githubPages: boolean;
    gitRemote: string;
    gitRevision: string;
    groupOrder: string[];
    headings: {
        document: boolean;
        readme: boolean;
    };
    help: boolean;
    hideGenerator: boolean;
    hideParameterTypesInTitle: boolean;
    highlightLanguages: string[];
    hostedBaseUrl: string;
    includeVersion: boolean;
    inlineTags: `@${string}`[];
    intentionallyNotExported: string[];
    jsDocCompatibility: JsDocCompatibility;
    json: string;
    kindSortOrder: KindString[];
    lang: string;
    lightHighlightTheme: BundledTheme;
    locales: ManuallyValidatedOption<Record<string, Record<string, string>>>;
    logLevel: typeof LogLevel;
    markdownItLoader: ManuallyValidatedOption<((parser: any) => void)>;
    markdownItOptions: ManuallyValidatedOption<Record<string, unknown>>;
    markdownLinkExternal: boolean;
    maxTypeConversionDepth: number;
    modifierTags: `@${string}`[];
    name: string;
    navigation: {
        compactFolders: boolean;
        excludeReferences: boolean;
        includeCategories: boolean;
        includeFolders: boolean;
        includeGroups: boolean;
    };
    navigationLeaves: string[];
    navigationLinks: ManuallyValidatedOption<Record<string, string>>;
    options: string;
    out: string;
    packageOptions: ManuallyValidatedOption<TypeDocOptions>;
    plugin: string[];
    preserveLinkText: boolean;
    preserveWatchOutput: boolean;
    pretty: boolean;
    projectDocuments: string[];
    readme: string;
    requiredToBeDocumented: KindString[];
    searchCategoryBoosts: ManuallyValidatedOption<Record<string, number>>;
    searchGroupBoosts: ManuallyValidatedOption<Record<string, number>>;
    searchInComments: boolean;
    searchInDocuments: boolean;
    showConfig: boolean;
    sidebarLinks: ManuallyValidatedOption<Record<string, string>>;
    skipErrorChecking: boolean;
    sort: (
        | "kind"
        | "instance-first"
        | "alphabetical"
        | "source-order"
        | "alphabetical-ignoring-documents"
        | "enum-value-ascending"
        | "enum-value-descending"
        | "enum-member-source-order"
        | "static-first"
        | "visibility"
        | "required-first"
        | "external-last"
        | "documents-first"
        | "documents-last")[];
    sortEntryPoints: boolean;
    sourceLinkExternal: boolean;
    sourceLinkTemplate: string;
    suppressCommentWarningsInDeclarationFiles: boolean;
    theme: string;
    titleLink: string;
    treatValidationWarningsAsErrors: boolean;
    treatWarningsAsErrors: boolean;
    tsconfig: string;
    useHostedBaseUrlForAbsoluteLinks: boolean;
    useTsLinkResolution: boolean;
    validation: ValidationOptions;
    version: boolean;
    visibilityFilters: ManuallyValidatedOption<{
        external?: boolean;
        inherited?: boolean;
        private?: boolean;
        protected?: boolean;
        [tag: `@${string}`]: boolean;
    }>;
    watch: boolean;
}

Properties

alwaysCreateEntryPointModule: boolean
basePath: string
blockTags: `@${string}`[]
cacheBust: boolean
cascadedModifierTags: `@${string}`[]
categorizeByGroup: boolean
categoryOrder: string[]
cleanOutputDir: boolean
cname: string
commentStyle: {
    All: "all";
    Block: "block";
    JSDoc: "jsdoc";
    Line: "line";
}
compilerOptions: unknown
customCss: string
customFooterHtml: string
customFooterHtmlDisableWrapper: boolean
customJs: string
darkHighlightTheme: BundledTheme
defaultCategory: string
disableGit: boolean
disableSources: boolean
emit: {
    both: "both";
    docs: "docs";
    none: "none";
}
entryPoints: string[]
entryPointStrategy: {
    Expand: "expand";
    Merge: "merge";
    Packages: "packages";
    Resolve: "resolve";
}

Type declaration

  • ReadonlyExpand: "expand"

    The default behavior in v0.21 and earlier. Behaves like the resolve behavior, but will recursively expand directories into an entry point for each file within the directory.

  • ReadonlyMerge: "merge"

    Merges multiple previously generated output from TypeDoc's --json output together into a single project.

  • ReadonlyPackages: "packages"

    Run TypeDoc in each directory passed as an entry point. Once all directories have been converted, use the merge option to produce final output.

  • ReadonlyResolve: "resolve"

    The default behavior in v0.22+, expects all provided entry points as being part of a single program. Any directories included in the entry point list will result in dir/index.([cm][tj]s|[tj]sx?) being used.

exclude: string[]
excludeCategories: string[]
excludeExternals: boolean
excludeInternal: boolean
excludeNotDocumented: boolean
excludeNotDocumentedKinds: KindString[]
excludePrivate: boolean
excludeProtected: boolean
excludeReferences: boolean
excludeTags: `@${string}`[]
externalPattern: string[]
externalSymbolLinkMappings: ManuallyValidatedOption<Record<string, Record<string, string>>>
githubPages: boolean
gitRemote: string
gitRevision: string
groupOrder: string[]
headings: {
    document: boolean;
    readme: boolean;
}
help: boolean
hideGenerator: boolean
hideParameterTypesInTitle: boolean
highlightLanguages: string[]
hostedBaseUrl: string
includeVersion: boolean
inlineTags: `@${string}`[]
intentionallyNotExported: string[]
jsDocCompatibility: JsDocCompatibility
json: string
kindSortOrder: KindString[]
lang: string
lightHighlightTheme: BundledTheme
locales: ManuallyValidatedOption<Record<string, Record<string, string>>>
logLevel: typeof LogLevel
markdownItLoader: ManuallyValidatedOption<((parser: any) => void)>

Will be called when TypeDoc is setting up the markdown parser to use to render markdown. Can be used to add markdown-it plugins to the parser with code like this:

// typedoc.config.mjs
import iterator from "markdown-it-for-inline";
export default {
/** @param {MarkdownIt} parser */
markdownItLoader(parser) {
parser.use(iterator, "foo_replace", "text", function(tokens, idx) {
tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');
});
}
}

Note: Unfortunately, markdown-it doesn't ship its own types, so parser isn't strictly typed here.

markdownItOptions: ManuallyValidatedOption<Record<string, unknown>>
markdownLinkExternal: boolean
maxTypeConversionDepth: number
modifierTags: `@${string}`[]
name: string
navigation: {
    compactFolders: boolean;
    excludeReferences: boolean;
    includeCategories: boolean;
    includeFolders: boolean;
    includeGroups: boolean;
}
navigationLeaves: string[]
navigationLinks: ManuallyValidatedOption<Record<string, string>>
options: string
out: string
plugin: string[]
preserveLinkText: boolean
preserveWatchOutput: boolean
pretty: boolean
projectDocuments: string[]
readme: string
requiredToBeDocumented: KindString[]
searchCategoryBoosts: ManuallyValidatedOption<Record<string, number>>
searchGroupBoosts: ManuallyValidatedOption<Record<string, number>>
searchInComments: boolean
searchInDocuments: boolean
showConfig: boolean
sidebarLinks: ManuallyValidatedOption<Record<string, string>>
skipErrorChecking: boolean
sort: (
    | "kind"
    | "instance-first"
    | "alphabetical"
    | "source-order"
    | "alphabetical-ignoring-documents"
    | "enum-value-ascending"
    | "enum-value-descending"
    | "enum-member-source-order"
    | "static-first"
    | "visibility"
    | "required-first"
    | "external-last"
    | "documents-first"
    | "documents-last")[]
sortEntryPoints: boolean
sourceLinkExternal: boolean
sourceLinkTemplate: string
suppressCommentWarningsInDeclarationFiles: boolean
theme: string
titleLink: string
treatValidationWarningsAsErrors: boolean
treatWarningsAsErrors: boolean
tsconfig: string
useHostedBaseUrlForAbsoluteLinks: boolean
useTsLinkResolution: boolean
validation: ValidationOptions
version: boolean
visibilityFilters: ManuallyValidatedOption<{
    external?: boolean;
    inherited?: boolean;
    private?: boolean;
    protected?: boolean;
    [tag: `@${string}`]: boolean;
}>
watch: boolean