@use JSDoc

ES 2015 类

JSDoc 3 让文档化遵循 ECMAScript 2015 规范 的类变得容易。您无需对 ES 2015 类使用诸如 @class@constructor 之类的标签——JSDoc 只需解析您的代码,即可自动识别类及其构造函数。ES 2015 类在 JSDoc 3.4.0 及更高版本中受支持。

文档化一个简单的类

以下示例展示了如何文档化一个带有构造函数、两个实例方法和一个静态方法的简单类

简单的 ES 2015 类
/** Class representing a point. */
class Point {
    /**
     * Create a point.
     * @param {number} x - The x value.
     * @param {number} y - The y value.
     */
    constructor(x, y) {
        // ...
    }

    /**
     * Get the x value.
     * @return {number} The x value.
     */
    getX() {
        // ...
    }

    /**
     * Get the y value.
     * @return {number} The y value.
     */
    getY() {
        // ...
    }

    /**
     * Convert a string containing two comma-separated numbers into a point.
     * @param {string} str - The string containing two comma-separated numbers.
     * @return {Point} A Point object.
     */
    static fromString(str) {
        // ...
    }
}

您还可以文档化在类表达式中定义的类,该表达式将类分配给一个变量或常量

ES 2015 类表达式
/** Class representing a point. */
const Point = class {
    // and so on
}

扩展类

当您使用 extends 关键字来扩展一个现有类时,您还需要告诉 JSDoc 您正在扩展哪个类。您可以使用 @augments(或 @extends)标签 来做到这一点。

例如,要扩展上面展示的 Point

扩展一个 ES 2015 类
/**
 * Class representing a dot.
 * @extends Point
 */
class Dot extends Point {
    /**
     * Create a dot.
     * @param {number} x - The x value.
     * @param {number} y - The y value.
     * @param {number} width - The width of the dot, in pixels.
     */
    constructor(x, y, width) {
        // ...
    }

    /**
     * Get the dot's width.
     * @return {number} The dot's width, in pixels.
     */
    getWidth() {
        // ...
    }
}