Skip to main content

@class

Syntax

@class
@class {type} name

Overview

@class tells JSDoc that a function is meant to be called with new — that is, it is a constructor for a class. JSDoc documents the function as a class rather than a plain function.

For ES2015 class syntax, you do not need @class — JSDoc recognises class declarations automatically. @class is mainly useful for the older constructor-function pattern.

Examples

Constructor function (pre-ES2015)

/**
* Creates a new Animal.
* @class
* @param {string} name - The animal's name.
*/
function Animal(name) {
this.name = name;
}

ES2015 class (no @class needed)

/**
* Represents an animal.
*/
class Animal {
/**
* @param {string} name - The animal's name.
*/
constructor(name) {
this.name = name;
}
}

See also

Official reference: jsdoc.app/tags-class