Functions
/**
 * This is a function.
 *
 * @param {string} n - A string param
 * @param {string} [o] - A optional string param
 * @param {string} [d=DefaultValue] - A optional string param
 * @return {string} A good string
 *
 * @example
 *
 *     foo('hello')
 */
function foo(n, o, d) {
  return n
}
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 | 
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) {}
Typedef Shorthand
/**
 * A song
 * @typedef {{title: string, artist: string, year: number}} Song
 */
/**
 * Plays a song
 * @param {Song} song - The {@link Song} to be played
 */
function play(song) {}
Importing types
/**
 * @typedef {import('./Foo').default} Bar
 */
// or
/** @import { Bar } from "./Foo.js" */
/**
 * @param {Bar} x
 */
function test(x) {}
This syntax is TypeScript-specific.
Other keywords
/**
 * @throws {FooException}
 * @async
 * @private
 * @deprecated
 * @see
 * @example
 * @todo
 *
 * @function
 * @class
 */
See the full list: https://jsdoc.app/index.html#block-tags
Renaming
/**
 * @alias Foo.bar
 * @name Foo.bar
 */
Prefer alias over name. See: https://jsdoc.app/tags-alias.html
0 Comments for this cheatsheet. Write yours!