@implements
Syntax
@implements {typeExpression}
Overview
The @implements
tag indicates that a symbol implements an interface.
Add the @implements
tag to the top-level symbol that implements the interface (for example, a constructor function). You do not need to add the @implements
tag to each member of the implementation (for example, the implementation's instance methods).
If you do not document one of the symbols in the implementation, JSDoc will automatically use the interface's documentation for that symbol.
Examples
In the following example, the TransparentColor
class implements the Color
interface and adds a TransparentColor#rgba
method.
Using the @implements tag
/**
* Interface for classes that represent a color.
*
* @interface
*/
function Color() {}
/**
* Get the color as an array of red, green, and blue values, represented as
* decimal numbers between 0 and 1.
*
* @returns {Array<number>} An array containing the red, green, and blue values,
* in that order.
*/
Color.prototype.rgb = function () {
throw new Error('not implemented')
}
/**
* Class representing a color with transparency information.
*
* @class
* @implements {Color}
*/
function TransparentColor() {}
// inherits the documentation from `Color#rgb`
TransparentColor.prototype.rgb = function () {
// ...
}
/**
* Get the color as an array of red, green, blue, and alpha values, represented
* as decimal numbers between 0 and 1.
*
* @returns {Array<number>} An array containing the red, green, blue, and alpha
* values, in that order.
*/
TransparentColor.prototype.rgba = function () {
// ...
}