@class (@constructor)【クラス (new 呼び出し関数)】@classdesc【クラス説明】@augments (@extends)【継承】 @class【クラス (new 呼び出し関数)】@constructor【クラス (new 呼び出し関数)】 メモクラス定義を宣言 関数定義で使用 関数定義をコンストラクタとみなす タグの省略:コンストラクタの説明 クラスの説明:@classdesc【クラス説明】 new で生成しないと警告 未指定で this を使用すると警告 class【クラス】 定義で使用 自動認識 (タグは使用しない) new で生成しないと警告 関連 @classdesc【クラス説明】 @augments (@extends)【継承】 @use JSDoc (英語):@class (synonyms: @constructor) Annotating JavaScript for the Closure Compiler (英語):@constructor 構文 @class [クラス名] シノニム:@constructor クラス名:クラスの別名 (省略:定義名) @constructor 例 /** * クラスAのコンストラクタの説明 * @constructor * @classdesc クラスAの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ function ClassA(p1, p2) { // 処理 } var classA1 = new ClassA(1, 2); var classA2 = ClassA(1, 2); // 警告:new なし /** * クラスXの説明 */ class ClassX { /** * クラスXのコンストラクタの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ constructor(p1, p2) { // 処理 } } var classX1 = new ClassX(1, 2); var classX2 = ClassX(1, 2); // 警告:new なし @classdesc【クラス説明】メモクラスの説明を記述 関数定義で使用 先頭のブロックタグは、コンストラクタの説明 class【クラス】 定義で使用 先頭のブロックタグであれば省略可 関連 @class (@constructor)【クラス (new 呼び出し関数)】 @augments (@extends)【継承】 @use JSDoc (英語):@classdesc 構文 @classdesc クラスの説明 例 /** * クラスAのコンストラクタの説明 * @constructor * @classdesc クラスAの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ function ClassA(p1, p2) { // 処理 } /** * クラスXの説明 */ class ClassX { /** * クラスXのコンストラクタの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ constructor(p1, p2) { // 処理 } } @augments【継承】@extends【継承】 メモ継承クラスを宣言 関数定義で使用 @constructor【クラス (new 呼び出し関数)】 または @interface【インタフェース】 必須 class【クラス】 定義で使用 extends【継承】 は自動認識されない為、継承クラスを記述 関連 @class (@constructor)【クラス (new 呼び出し関数)】 @classdesc【クラス説明】 @use JSDoc (英語):@augments (synonyms: @extends) Annotating JavaScript for the Closure Compiler (英語):@extends {Type} 構文 @augments 継承元のクラス シノニム:@extends @extends {継承元のクラス} 例 /** * クラスAのコンストラクタの説明 * @constructor * @classdesc クラスAの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ function ClassA(p1, p2) { // 処理 } /** * クラスBのコンストラクタの説明 * @constructor * @extends {ClassA} * @classdesc クラスBの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ function ClassB(p1, p2) { // 処理 } /** * クラスXの説明 */ class ClassX { /** * クラスXのコンストラクタの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ constructor(p1, p2) { // 処理 } } /** * クラスYの説明 * @extends ClassX */ class ClassY extends ClassX { /** * クラスYのコンストラクタの説明 * @param {number} p1 パラメータ1 * @param {number} p2 パラメータ2 */ constructor(p1, p2) { super(p1, p2); // 処理 } }