Skip to content

Inner types in a function-namespace are not documented #2476

Closed
@fasttime

Description

@fasttime

Search terms

function, namespace

Expected Behavior

I would expect TypeDoc v0.25.5/6 to behave like v0.25.4.

In the following code, both the function-namespace (test) and the inner type (test.Options) should be documented.

/**
 * Test function
 *
 * @param options Options for the function.
 */
declare function test(options?: test.Options): void;

declare namespace test
{
    /** Test options */
    interface Options
    {
        a: string;
        b: number;
    }
}

export { test };

Actual Behavior

Only the function-namespace (test) is documented.

On the command line I see this warning:

[warning] test.Options, defined in ./index.ts, is referenced by test.test.options but not included in the documentation.

I can work around this problem by adding a second export keyword directly on the namespace declaration (see below), but that should not be necessary.

/**
 * Test function
 *
 * @param options Options for the function.
 */
declare function test(options?: test.Options): void;

export declare namespace test // redundant export
{
    /** Test options */
    interface Options
    {
        a: string;
        b: number;
    }
}

export { test };

Steps to reproduce the bug

Repro: https://stackblitz.com/edit/stackblitz-starters-qqddz8

Environment

  • Typedoc version: 0.25.5 and 0.25.6
  • TypeScript version: 5.3.3
  • Node.js version: 20.10
  • OS: -

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions