PHPDoc 是一种注释规范,用于为 PHP 代码提供文档。
@param参数类型 $参数名称 参数说明 - 用于指定一个函数或方法的参数类型、名称和说明。
/**
* 计算两个数的和
* @param int $a 第一个数字
* @param int $b 第二个数字
* @return int 两数之和
*/
function add($a, $b){
return $a + $b;
}
@return 返回值类型 返回值说明 - 用于指定一个函数或方法返回值的类型和说明。
/**
* 计算平均值
* @param array $numbers 数字数组
* @return float 平均数
*/
function average($numbers){
return array_sum($numbers)/count($numbers);
}
@var 变量类型 - 用于指定变量的数据类型。
/**
* 用户姓名
*
* @var string
*/
public $name;
@throws 异常类型 异常说明,用于指定方法或函数所可能抛出的异常。
/**
* 根据用户名查找用户信息
* param string $username 用户名.
* return string 用户信息.
* throws InvalidUsernameException 如果用户名无效,则抛出异常.
*/
function getUserInfoByUsername($username) {
if (/* 检查用户名是否有效*/) {
// 如果用户名无效,则抛出异常.
throw new InvalidUsernameException('Invalid username provided '.$username);
}
// 返回用户信息.
return $userInfo;
}
@deprecated 已弃用的方法或函数 ,用于标记方法或函数已经过时不推荐使用。
/**
* 弃用的方法
* @deprecated 该方法已被弃用,请改用 newMethod 函数。
*/
function OldMethod(){
// 该方法已被弃用
}
JSDoc 是一种用于为 JavaScript 代码提供文档的注释规范。
@param 参数名 {类型} 参数描述 - 用于指定一个函数或方法的参数名、数据类型和说明。
/**
* 计算两个数字之和。
* @param {number} a - 第一个数字
* @param {number} b - 第二个数字
* @returns {number} 两个数字之和
*/
function add(a, b) {
return a + b;
}
@returns {类型} 返回值描述 - 用于指定一个函数或方法返回值的类型和说明。
/**
* 计算数组中所有元素之和。
*
* @param {Array<number>} arr - 数字数组
* @returns {number} 数组中所有元素之和
*/
function sum(arr) {
return arr.reduce((acc, cur) => acc + cur);
}
@typedef 类型定义名称 = 类型定义内容 - 用于定义一个自定义数据类型,可以在函数注释或其它地方引用它,并且可以包含属性、方法等成员。
/**
* 用户信息对象。
*
* @typedef {Object} UserInfo
*
* @property {string} name 用户姓名
* @property {string} email 用户邮箱地址
*/
/**
* 获取用户信息.
*
* @param userId 用户ID.
*
* returns {UserInfo[]} 所有匹配用户的列表.
*/
function getUserInfo(userId) {
// 查询并返回用户信息...
}
@type,进行基本类型注释。
// TypeScript
let name: string = 'Amy';
// JSDoc
/** @type {string} */
let name = 'Amy';
Vue.js 的文档注释使用的是基于 JSDoc 的风格,但是添加了Vue.js 特有的运行时和模板相关的标签。
@prop {type} propName - 用于描述组件的属性列表(props),其中 type 是指属性数据类型,propName 是指属性名称。
/**
* Button 组件
*
* @prop {Boolean} disabled 是否禁用
* @prop {String} type button 类型(按钮类型),可选值为 `'primary'`, `'success'`, `'warning'`, `'danger'`, 或者不设置.
*/
@event {eventName} - 用于描述组件所触发的事件(events)及其参数。
/**
* Table 组件.
*
* @event row-clicked({row: Object}) 表格行被点击时触发.
*/
/**
* Alert 组件.
*
* @slot title 标题
* Alert 标题内容.
*
* @slot content 内容
* Alert 描述信息,支持 HTML 填入.
*/