> JSDoc在线手册 > ES 2015 Classes(类)

ES 2015 Classes(类)


JSDoc3 描述一个遵循 ECMAScript 2015规范的类是很简单的。你并不需要使用诸如如@class@constructor的标签来描述 ES 2015 classes,JSDoc通过分析你的代码会自动识别类和它们的构造函数。ES 2015 classes在JSDoc3.4.0及更高版本支持。

Documenting a simple class(文档化一个简单的类)

下面的例子演示了如何通过一个构造函数,两个实例方法和一个静态方法文档化一个简单的类:

例如,简单的 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
} 

Extending classes(扩展类)

当您使用 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() {
        // ...
    }
}