What is jsdoc?
JSDoc is a documentation generator for JavaScript. It parses comments in your source code with JSDoc tags and generates an HTML documentation website.
What are jsdoc's main functionalities?
Generating API documentation
This code sample shows how to use JSDoc comments to document a constructor function for a book. When JSDoc processes this, it will generate documentation for the Book function, including its parameters and their types.
/**
* Represents a book.
* @constructor
* @param {string} title - The title of the book.
* @param {string} author - The author of the book.
*/
function Book(title, author) {
this.title = title;
this.author = author;
}
Documenting a class and its methods
This code sample demonstrates how to document a class and its constructor, as well as a method within the class. JSDoc will generate documentation for the Point class, its constructor, and the getDistanceTo method, including parameter and return types.
/**
* Class representing a point.
*/
class Point {
/**
* Create a point.
* @param {number} x - The x value.
* @param {number} y - The y value.
*/
constructor(x, y) {
this.x = x;
this.y = y;
}
/**
* Get the distance from this point to another point.
* @param {Point} point - The point to get the distance to.
* @returns {number} The distance.
*/
getDistanceTo(point) {
// ... implementation ...
}
}
Documenting module exports
This code sample shows how to document a module and a function that it exports. JSDoc will generate documentation for the module and the exported function, including the function's parameters and return value.
/**
* @module myModule
*/
/**
* A function that does something.
* @param {number} input - The input number.
* @returns {number} The result.
*/
exports.myFunction = function(input) {
// ... implementation ...
};
Other packages similar to jsdoc
typedoc
TypeDoc is a documentation generator that is similar to JSDoc but is specifically designed for TypeScript projects. It reads TypeScript source files and produces API documentation from the comments. Compared to JSDoc, TypeDoc is more suited for TypeScript due to its understanding of TypeScript-specific features.
esdoc
ESDoc is a good documentation generator for JavaScript (ES6) projects. It focuses on the ECMAScript 2015 (ES6) syntax and has features like coverage reporting, which shows how much of your code is documented. ESDoc also supports plugin architecture, allowing for additional functionality to be added.
JSDoc 3
An API documentation generator for JavaScript.
Want to contribute to JSDoc? Please read CONTRIBUTING.md
.
Installation and Usage
JSDoc supports Node.js 4.2.0 and later. You can install JSDoc globally or in your project's
node_modules
folder.
To install the latest version on npm globally (may require sudo
; learn how to fix
this):
npm install -g jsdoc
To install the latest version on npm locally and save it in your package's package.json
file:
npm install --save-dev jsdoc
Note: By default, npm adds your package using the caret operator in front of the version number
(for example, ^3.5.2
). We recommend using the tilde operator instead (for example, ~3.5.2
),
which limits updates to the most recent patch-level version. See this Stack Overflow
answer for more information about the caret and tilde
operators.
To install the latest development version locally, without updating your project's package.json
file:
npm install git+https://github.com/jsdoc3/jsdoc.git
If you installed JSDoc locally, the JSDoc command-line tool is available in ./node_modules/.bin
.
To generate documentation for the file yourJavaScriptFile.js
:
./node_modules/.bin/jsdoc yourJavaScriptFile.js
Or if you installed JSDoc globally, simply run the jsdoc
command:
jsdoc yourJavaScriptFile.js
By default, the generated documentation is saved in a directory named out
. You can use the
--destination
(-d
) option to specify another directory.
Run jsdoc --help
for a complete list of command-line options.
Templates and Tools
The JSDoc community has created numerous templates and other tools to help you generate and
customize your documentation. Here are just a few:
Templates
Build Tools
Other Tools
For More Information
License
JSDoc 3 is copyright (c) 2011-present Michael Mathews micmath@gmail.com and the contributors to
JSDoc.
JSDoc 3 is free software, licensed under the Apache License, Version 2.0. See the file LICENSE.md
in this distribution for more details.