@use JSDoc

シノニム

構文

@external <NameOfExternal>

概要

@external タグは、現在のパッケージ外で定義されているクラス、名前空間、またはモジュールを特定します。このタグを使用すると、外部シンボルに対するパッケージの拡張機能を文書化したり、パッケージのユーザーに対して外部シンボルに関する情報を提供できます。また、他の JSDoc タグで外部シンボルのネームパスを参照することもできます。

外部シンボルのネームパスには常にプレフィックス external: が使用されます(例: {@link external:Foo} または @augments external:Foo)。ただし、このプレフィックスは @external タグからは省略できます。

注意: @external タグは、プロジェクト外で定義されている最上位のシンボルだけに追加する必要があります。「ネストされた外部シンボルの文書化」で例を参照してください。

次の例は、組み込みの String オブジェクトを外部として、新しいインスタンスメソッド external:String#rot13 を文書化する方法を示しています

組み込みクラスに追加されたメソッドの文書化
/**
 * The built in string object.
 * @external String
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String|String}
 */

/**
 * Create a ROT13-encoded version of the string. Added by the `foo` package.
 * @function external:String#rot13
 * @example
 * var greeting = new String('hello world');
 * console.log( greeting.rot13() ); // uryyb jbeyq
 */

次の例は、外部名前空間 "jQuery.fn" に追加された新しい starfairy 関数を文書化します

外部名前空間の文書化
/**
 * The jQuery plugin namespace.
 * @external "jQuery.fn"
 * @see {@link http://learn.jquery.com/plugins/|jQuery Plugins}
 */

/**
 * A jQuery plugin to make stars fly around your home page.
 * @function external:"jQuery.fn".starfairy
 */

次の例では、クラス EncryptedRequest を組み込みクラス XMLHttpRequest のサブクラスとして文書化します

外部の拡張
/**
 * The built-in class for sending HTTP requests.
 * @external XMLHttpRequest
 * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
 */

/**
 * Extends the built-in `XMLHttpRequest` class to send data encoded with a secret key.
 * @class EncodedRequest
 * @extends external:XMLHttpRequest
 */

@external タグは、プロジェクト外で定義されている最上位のシンボルだけに追加する必要があります。次の例では、ドキュメントは外部クラス security.TLS を参照しています。そのため、@external タグは外部名前空間 external:security の文書化に使用されますが、外部クラス external:security.TLS に対しては使用されません。

ネストされた外部シンボルの文書化
/**
 * External namespace for security-related classes.
 * @external security
 * @see http://example.org/docs/security
 */

/**
 * External class that provides Transport Layer Security (TLS) encryption.
 * @class TLS
 * @memberof external:security
 */