@use JSDoc


Getting Started

Getting Started with JSDoc 3
A quick-start to documenting JavaScript with JSDoc.
Using namepaths with JSDoc 3
A guide to using namepaths with JSDoc 3.
Command-line arguments to JSDoc
About command-line arguments to JSDoc.
Configuring JSDoc with a configuration file
How to configure JSDoc using a configuration file.
Configuring JSDoc's default template
How to configure the output from JSDoc's default template.
Block and inline tags
Overview of block and inline JSDoc tags.
About JSDoc plugins
How to create and use JSDoc plugins.
Using the Markdown plugin
Enable Markdown support in JSDoc.
Adding tutorials to your API documentation.
Including a Package File
How to show package details in your documentation.
Including a README File
How to include a README file in your documentation.
License information for JSDoc 3.

JSDoc Examples

ES 2015 Classes
How to add JSDoc comments to ECMAScript 2015 classes.
ES 2015 Modules
How to add JSDoc comments to ECMAScript 2015 modules.
CommonJS Modules
How to add JSDoc comments to CommonJS and Node.js modules.
AMD Modules
How to add JSDoc comments to AMD and RequireJS modules.

Block Tags

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


JSDoc project on GitHub
Contribute to JSDoc.
Use JSDoc project on GitHub
Contribute to the JSDoc documentation.

Fork me on GitHub