Rush Stackショップブログイベント
メインコンテンツへスキップ

{@inheritDoc}

タグの種類: インラインタグ

TSDocの標準化: 拡張

構文

  • {@inheritDoc DECLARATION_REFERENCE}

@inheritDoc タグは、別の宣言からドキュメントの内容を自動的にコピーします。これにより、2つの宣言が同じ動作を持ち、したがって同一のドキュメントを持つ必要がある場合に、重複を回避できます。

インラインタグの内容は、コピー元の「ターゲット宣言」を指定するTSDoc宣言参照です。ターゲットは任意の宣言にできます。基底クラスや実装されたインターフェースからである必要はありません。ターゲット宣言は必須です。省略すると、ae-unresolved-inheritdoc-baseエラーが報告されます。ターゲット宣言自体に別の@inheritDocタグが含まれている場合があります。ただし、リンクがサイクルを形成する場合、ae-cyclic-inherit-docエラーが報告されます。

使用例

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 {
. . .
}
}

上記の例では、Button.draw()IWidget.draw()インターフェース契約を実装しているため、{@inheritDoc IWidget.draw}を使用して、コメントブロック全体をコピー&ペーストすることを回避できます。Button.save()は、異なる名前を持ち、異なるパッケージからインポートされたSerializer.writeFile()からドキュメントを継承していることに注意してください。「継承」関係はありませんが、その宣言からドキュメントをコピーすることは可能です。

コピーされるもの

@inheritDocタグは、コメント本文全体をコピーしません。次のコンポーネントのみがコピーされます。

  • 概要セクション
  • @remarksブロック
  • @paramsブロック
  • @typeParamブロック
  • @returnsブロック

@defaultValue@exampleなどの他のタグはコピーされず、@inheritDocタグの後に明示的に含める必要があります。

参照