@type【型】
@typedef【型定義】
@property(@prop)【プロパティ】
@member(@var)【メンバ】

@type【型】

メモ

構文

@type {} 

/**
 * 変数の説明
 * @type {boolean}
 */
var typeBoolean = true;

/**
 * 型定義の説明
 * @typedef {(number|string)} NumberOrString
 */
/**
 * 変数の説明
 * @type {NumberOrString}
 */
var typeDef;

var /** string */ typeString = "String"; 

@typedef【型定義】

メモ

構文

@typedef [ {} ] 名前パス 

@typedef {} 

/**
 * 型定義の説明
 * @typedef {(number|string)} NumberOrString
 */

/**
 * クラスの説明
 * @class
 * @param {ClassTypedef~prop} prop
 */
function ClassTypedef(prop) {}

/**
 * 型定義の説明
 * @typedef {Object} ClassTypedef~prop
 * @property {number} num       数字型
 * @property {string} str       文字列型
 */

/**
 * @constructor
 */
function ClassTypedefCC() { }

/**
 * 型定義の説明 (Closure Compiler用)
 * @typedef {(number|boolean)} 
 */
ClassTypedefCC.NumberOrBoolean;

@property(@prop)【プロパティ】

メモ

構文

@property [ {} ] プロパティ名 [[ - ]説明]
シノニム:@prop

/**
 * @namespace
 * @property {number} num       数字型
 * @property {string} str       文字列型
 * @property {number} prop.num  数字型 (入れ子)
 * @property {string} prop.str  文字列型 (入れ子)
 */
var namespaceProperty = { num:1, str:"string", prop:{ num:1, str:"string" } };

/**
 * 型定義+プロパティ
 * @typedef {Object} objProperty
 * @property {number} num
 * @property {string} str
 * @property {number} prop.num
 * @property {string} prop.str
 */
// { num:1, str:"string", prop:{ num:1, str:"string" } }

/**
 * @param {objProperty} p1 定義型
 */
function funcProperty(p1) { }

@member(@var)【メンバ】

メモ

構文

@member [ {} ] [説明]
シノニム:@var

/**
 * @class
 */
function ClassMember() {
  /** @member {number} */
  this.num = 1;
  /** @member {string} */
  this.str = "";
}