{@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
タグの後に明示的に含める必要があります。