Классы ES 2015
Содержание
JSDoc 3 упрощает документирование классов, которые следуют спецификации ECMAScript 2015. Вам не нужно использовать теги, такие как @class и @constructor, с классами ES 2015 — JSDoc автоматически определяет классы и их конструкторы, просто анализируя ваш код. Классы ES 2015 поддерживаются в JSDoc 3.4.0 и более поздних версиях.
Документирование простого класса
Следующий пример демонстрирует, как документировать простой класс с конструктором, двумя методами экземпляра и одним статическим методом:
/** 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) {
// ...
}
}
Вы также можете документировать классы, которые определены в выражении класса, которое присваивает класс переменной или константе:
/** Class representing a point. */
const Point = class {
// and so on
}
Расширение классов
Когда вы используете ключевое слово extends для расширения существующего класса, вам также необходимо указать JSDoc, какой класс вы расширяете. Вы делаете это с помощью тега @augments (или @extends).
Например, чтобы расширить класс Point , показанный выше:
/**
* 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() {
// ...
}
}
Связанные ссылки
© 2011–2017 the contributors to the JSDoc 3 documentation project
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://jsdoc.app/howto-es2015-classes.html