Functions
/**
* This is a function.
*
* @param {string} n - A string param
* @return {string} A good string
*
* @example
*
* foo('hello')
*/
function foo(n) { return n }
See: http://usejsdoc.org/index.html
Types
Type | Description |
---|---|
@param {string=} n |
Optional |
@param {string} [n] |
Optional |
@param {(string|number)} n |
Multiple types |
@param {*} n |
Any type |
@param {...string} n |
Repeatable arguments |
@param {string} [n="hi"] |
Optional with default |
@param {string[]} n |
Array of strings |
@return {Promise<string[]>} n |
Promise fulfilled by array of strings |
See: http://usejsdoc.org/tags-type.html
Variables
/**
* @type {number}
*/
var FOO = 1
/**
* @const {number}
*/
const FOO = 1
Typedef
/**
* A song
* @typedef {Object} Song
* @property {string} title - The title
* @property {string} artist - The artist
* @property {number} year - The year
*/
/**
* Plays a song
* @param {Song} song - The {@link Song} to be played
*/
function play (song) {
}
See: http://usejsdoc.org/tags-typedef.html
Typedef Shorthand
/**
* A song
* @typedef Song
*/
/**
* Plays a song
* @param {Song} song - The {@link Song} to be played
*/
function play (song) {
}
See: http://usejsdoc.org/tags-typedef.html
Importing types
/**
* @typedef {import('./Foo').default} Bar
*/
/**
* @param {Bar} x
*/
function test(x) { }
This syntax is TypeScript-specific.
Other keywords
/**
* @throws {FooException}
* @private
* @deprecated
* @see
*
* @function
* @class
*/
Renaming
/*
* @alias Foo.bar
* @name Foo.bar
*/
Prefer alias
over name
. See: http://usejsdoc.org/tags-alias.html