ECMAScript 2015 类¶
SDoc 3 makes it easy to document classes that follow the
ECMAScript 2015 specification.
You don’t need to use tags such as @class
and @constructor
with
ES 2015 classes—JSDoc automatically identifies classes and their constructors simply by parsing your code.
ES 2015 classes are supported in JSDoc 3.4.0 and later.
记录一个简单的类¶
The following example shows how to document a simple class with a constructor, two instance methods, and one static method:
Simple ES 2015 class¶
/** 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) {
// ...
}
}
You can also document classes that are defined in a class expression, which assigns the class to a variable or constant:
ES 2015 class expression¶
/** Class representing a point. */
const Point = class {
// and so on
}
扩展类¶
When you use the extends
keyword to extend an existing class, you
also need to tell JSDoc which class you’re extending. You do this with
the @augments
(or @extends
)。
例如,扩展上面显示的 Point
类:
Extending an ES 2015 class¶
/**
* 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() {
// ...
}
}