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.

TypeScript Supported

TypeScript uses @class (or @constructor) to treat a function as a class constructor for type-checking in JavaScript files.

TypeScript docs →

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​