Skip to content

Types in a namespace with same name as a function type are not documented #2478

Closed
@fasttime

Description

@fasttime

Search terms

namespace, function, const

Expected Behavior

A type declared inside an exported namespace should be documented, even when the namespace shares the name of a function type.

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

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

export { test };

Actual Behavior

In the above example, the inner type test.Options is not being documented. I am getting a warning in the terminal:

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

This seems related to #2476, but still occurs in TypeDoc v0.25.7 when a namespace shares the name of a function type (not a function declaration).

Steps to reproduce the bug

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

For reference, this is the full type declaration file where I originally found this problem: https://github.com/origin-1/c8js/blob/31a262b396c98d95622fcc4b1a31fe04a7d314ea/lib/c8js.d.ts

Environment

  • Typedoc version: 0.25.7
  • TypeScript version: 5.3.3
  • Node.js version: 2.0.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