99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

App下載

JSDoc 標簽大全|70+ 官方標簽速查表

編程獅(w3cschool.cn) 2025-08-06 16:25:50 瀏覽數(shù) (376)
反饋

JSDoc 3 是一個用于 JavaScript 的API文檔生成器,類似于 Javadoc 或 phpDocumentor。可以將文檔注釋直接添加到源代碼中。JSDoc 工具將掃描您的源代碼并為您生成一個 HTML 文檔網(wǎng)站。

JSDoc 速通手冊
——編程獅(w3cschool.cn)為前端新手量身打造的“一行一用”速查表

看完就能寫注釋,寫完就能出文檔!

1 起手式:一條萬能模板

/**
 * @file  文件描述
 * @author 編程獅 <dev@w3cschool.cn>
 * @license MIT
 * @since   2025-08-06
 * @version 1.0.0
 */

2 常用標簽「一行一用」

場景 簡寫模板 備注
描述變量 /** @type {number} */ let count 寫類型即可
描述函數(shù) /** @param {string} name - 用戶名 */ 必傳參數(shù)
可選參數(shù) /** @param {number} [age=18] - 年齡 */ 中括號 + 默認值
多個類型 /** @type {(string\|number)} id */ 管道符
對象結(jié)構(gòu) /** @type {{a: string, b: number}} */ 行內(nèi)對象
返回類型 /** @returns {Promise<boolean>} */ Promise 也支持
回調(diào)函數(shù) /** @callback FetchCb @param {string} url @returns {Promise} */ 先定義后使用
枚舉 /** @enum {number} */ const STATUS = { OK: 200, ERROR: 500 } 自動生成枚舉文檔
類注釋 /** @class User @desc 用戶實體 */ 構(gòu)造函數(shù)上加
棄用 /** @deprecated 用 fetchDataAsync 代替 */ IDE 會畫刪除線

3 完整函數(shù)示例(復制即用)

/**
 * 獲取用戶詳情
 * @func
 * @param {string} id - 用戶ID
 * @param {object} [options] - 可選配置
 * @param {boolean} [options.cache=true] - 是否緩存
 * @returns {Promise<User>} 用戶實例
 * @throws {Error} 當網(wǎng)絡異常
 * @example
 * getUser('123').then(console.log);
 */
async function getUser(id, { cache = true } = {}) {
  if (!id) throw new Error('id 不能為空');
  return fetch(`/api/user/${id}?cache=${cache}`).then(r => r.json());
}

4 一鍵生成文檔

  1. 安裝
    npm i -D jsdoc
  2. 配置 jsdoc.json
    {
     "source": { "include": ["src"] },
     "opts": { "destination": "docs" }
    }
  3. 運行
    npx jsdoc -c jsdoc.json
  4. 打開 docs/index.html 查看效果。

5 速背口訣

“變量加 @type,函數(shù)加 @param,返回加 @returns,枚舉用 @enum,棄用 @deprecated 別忘寫!”

6 JSDoc 3 全部標簽速查表(共 70+)

按使用頻率分 4 級:

??? 必背(藍框)??? 常用(綠框)?? 進階(灰框)?? 其他(了解)

① 文件級

標簽 說明 示例
@file / @fileoverview 文件描述 @file 用戶模塊入口
@author 作者 @author 編程獅 <dev@w3cschool.cn>
@copyright 版權(quán) @copyright 2025 w3cschool
@license 許可證 @license MIT
@version 版本 @version 1.2.0
@since 起始版本 @since 2025-08-06

② 類型與變量

標簽 說明 示例
@type ??? 變量/返回值類型 @type {number}
@typedef ?? 自定義類型 @typedef {{x:number,y:number}} Point
@callback ?? 回調(diào)類型 @callback FetchCb
@enum ? 枚舉 @enum {number} STATUS
@var ? 變量別名 @var {string} title
@constant / @const ?? 常量 @constant {string} API_ROOT
@readonly ? 只讀 @readonly
@default ? 默認值 @default 42

③ 函數(shù) / 方法

標簽 說明 示例
@param / @arg ??? 參數(shù) @param {string} name - 用戶名
@returns / @return ??? 返回值 @returns {Promise<User>}
@throws / @exception ?? 拋出異常 @throws {Error} 參數(shù)錯誤
@example ?? 用法示例 @example add(1,2) // 3
@async ? 異步 @async
@generator / @yields ? 生成器 @yields {number}
@this ? this 指向 @this {HTMLElement}

④ 類 / 模塊 / 命名空間

標簽 說明 示例
@class / @constructor ??? 構(gòu)造函數(shù) @class Person
@classdesc ? 類描述 @classdesc 用戶實體
@extends / @augments ?? 繼承 @extends Animal
@implements ? 實現(xiàn)接口 @implements Drawable
@interface ? 接口 @interface EventEmitter
@abstract / @virtual ? 抽象 @abstract draw()
@override ? 重寫 @override
@static ? 靜態(tài)成員 @static findById()
@instance ? 實例成員 @instance
@inner ? 內(nèi)部成員 @inner toString
@memberof ? 隸屬對象 @memberof utils
@namespace ?? 命名空間 @namespace math
@module ?? 模塊 @module user/api
@exports ? 出口 @exports UserModel
@requires ? 依賴模塊 @requires lodash

⑤ 成員可見性

標簽 說明
@public ? 公開(默認)
@private ?? 私有
@protected ?? 受保護
@package ? 包內(nèi)可見

⑥ 事件與監(jiān)聽

標簽 說明
@event ? 定義事件
@listens ? 監(jiān)聽事件
@fires / @emits ? 觸發(fā)事件

⑦ 其他實用標簽

標簽 說明
@description / @desc ?? 長描述
@summary ? 簡短描述
@deprecated ?? 已棄用
@see ? 參考鏈接
@link / @linkcode / @linkplain ? 內(nèi)聯(lián)鏈接 {@link URL}
@tutorial ? 教程鏈接
@ignore ? 忽略該符號
@todo ? TODO 任務
@borrows ? 借用其他注釋
@name ? 強制名稱(用于虛擬注釋)
@variation ? 同名變體
@external ? 外部類型
@mixin / @mixes ? 混入

⑧ 模板與泛型

標簽 說明
@template ? 泛型參數(shù) @template T
@satisfies ? TypeScript 專用

⑨ 完整模板速用

/**
 * @file 用戶模塊
 * @author 編程獅 <dev@w3cschool.cn>
 * @since 1.0.0
 */


/**
 * @typedef {Object} User
 * @property {string} name  用戶名
 * @property {number} age   年齡
 */


/**
 * 創(chuàng)建用戶
 * @func
 * @param {User} user
 * @returns {Promise<User>}
 * @throws {Error} 參數(shù)非法
 * @example
 * createUser({name:'Tom',age:18})
 */
async function createUser(user) { ... }

1 人點贊