Skip to content

JSDoc

An API documentation generator for JavaScript.

Block Tags

  • @abstract (synonyms: @virtual): This member must be implemented (or overridden) by the inheritor.
  • @access: Specify the access level of this member (private, package-private, public, or protected).
  • @alias: Treat a member as if it had a different name.
  • @async: Indicate that a function is asynchronous.
  • @augments (synonyms: @extends): Indicate that a symbol inherits from, and adds to, a parent symbol.
  • @author: Identify the author of an item.
  • @borrows: This object uses something from another object.
  • @callback: Document a callback function.
  • @class (synonyms: @constructor): This function is intended to be called with the "new" keyword.
  • @classdesc: Use the following text to describe the entire class.
  • @constant (synonyms: @const): Document an object as a constant.
  • @constructs: This function member will be the constructor for the previous class.
  • @copyright: Document some copyright information.
  • @default (synonyms: @defaultvalue): Document the default value.
  • @deprecated: Document that this is no longer the preferred way.
  • @description (synonyms: @desc): Describe a symbol.
  • @enum: Document a collection of related properties.
  • @event: Document an event.
  • @example: Provide an example of how to use a documented item.
  • @exports: Identify the member that is exported by a JavaScript module.
  • @external (synonyms: @host): Identifies an external class, namespace, or module.
  • @file (synonyms: @fileoverview, @overview): Describe a file.
  • @fires (synonyms: @emits): Describe the events this method may fire.
  • @function (synonyms: @func, @method): Describe a function or method.
  • @generator: Indicate that a function is a generator function.
  • @global: Document a global object.
  • @hideconstructor: Indicate that the constructor should not be displayed.
  • @ignore: Omit a symbol from the documentation.
  • @implements: This symbol implements an interface.
  • @inheritdoc: Indicate that a symbol should inherit its parent's documentation.
  • @inner: Document an inner object.
  • @instance: Document an instance member.
  • @interface: This symbol is an interface that others can implement.
  • @kind: What kind of symbol is this?
  • @lends: Document properties on an object literal as if they belonged to a symbol with a given name.
  • @license: Identify the license that applies to this code.
  • @listens: List the events that a symbol listens for.
  • @member (synonyms: @var): Document a member.
  • @memberof: This symbol belongs to a parent symbol.
  • @mixes: This object mixes in all the members from another object.
  • @mixin: Document a mixin object.
  • @module: Document a JavaScript module.
  • @name: Document the name of an object.
  • @namespace: Document a namespace object.
  • @override: Indicate that a symbol overrides its parent.
  • @package: This symbol is meant to be package-private.
  • @param (synonyms: @arg, @argument): Document the parameter to a function.
  • @private: This symbol is meant to be private.
  • @property (synonyms: @prop): Document a property of an object.
  • @protected: This symbol is meant to be protected.
  • @public: This symbol is meant to be public.
  • @readonly: This symbol is meant to be read-only.
  • @requires: This file requires a JavaScript module.
  • @returns (synonyms: @return): Document the return value of a function.
  • @see: Refer to some other documentation for more information.
  • @since: When was this feature added?
  • @static: Document a static member.
  • @summary: A shorter version of the full description.
  • @this: What does the 'this' keyword refer to here?
  • @throws (synonyms: @exception): Describe what errors could be thrown.
  • @todo: Document tasks to be completed.
  • @tutorial: Insert a link to an included tutorial file.
  • @type: Document the type of an object.
  • @typedef: Document a custom type.
  • @variation: Distinguish different objects with the same name.
  • @version: Documents the version number of an item.
  • @yields (synonyms: @yield): Document the value yielded by a generator function.

Inline Tags

  • {@link} (synonyms: {@linkcode}, {@linkplain}): Link to another item in the documentation.
  • {@tutorial}: Link to a tutorial.

Troubleshooting

Parsing error: JSDoc types can only be used inside documentation comments

error: Parsing error: JSDoc types can only be used inside documentation comments at src/shims-debug.d.ts:5:11:

You can't specify parameter type as function(string): void. It's just wrong syntax to define function types in TypeScript.

Instead of:

export function foo(bar: function(string): void): void;

do:

export function foo(bar: (arg: string) => void): void;

See also

Favorite site