Improve this page

@inheritDoc

Standardization: Extended
Syntax kind: Inline tag

Usage

This inline tag is used to automatically generate an API item’s documentation by copying it from another API item. The inline tag parameter contains a reference to the other item, which may be an unrelated class, or even an import from a separate NPM package.

Note: The notation for declaration references has not been finalized. See GitHub issue #9

What gets copied

The @inheritDoc tag does not copy the entire comment body. Only the following components are copied:

  • summary section
  • @remarks block
  • @params blocks
  • @typeParam blocks
  • @returns block

Other tags such as @defaultValue or @example are not copied, and need to be explicitly included after the @inheritDoc tag. When the @inheritDoc tag is specified, neither the summary section nor the @remarks section may be specified in the comment.

Example

import { Serializer } from 'example-library';

/**
 * An interface describing a widget.
 * @public
 */
export interface IWidget {
  /**
   * Draws the widget on the display surface.
   * @param x - the X position of the widget
   * @param y - the Y position of the widget
   */
  public draw(x: number, y: number): void;
}

/** @public */
export class Button implements IWidget {
  /** {@inheritDoc IWidget.draw} */
  public draw(x: number, y: number): void {
    . . .
  }

  /**
   * {@inheritDoc example-library#Serializer.writeFile}
   * @deprecated Use {@link example-library#Serializer.writeFile} instead.
   */
  public save(): void {
    . . .
  }
}