When an interface is a) defined as an ES2015 class and b) assigned to a variable, JSDoc sometimes used the wrong `longname` and `memberof` for members of the interface (specifically, for instance properties). The root cause was that we weren't resolving `this` correctly within this type of interface. As a result, if you added a JSDoc comment to something like `this.foo = 'bar'`, the doclet for `this.foo` had the wrong `longname` and `memberof`. Fixing that issue uncovered another issue: When we merged the constructor's doclet with the interface's doclet, we preferred the constructor's doclet. However, the constructor's doclet used the wrong `kind` in this case; we already had code to fix up the `longname` and `memberof` of the combined doclet, but not the `kind`. The fix was to prefer the interface's doclet for all properties. Manual cherry-pick of 95e3192525310b9f1567e034c22489da3a5847a1.
JSDoc
An API documentation generator for JavaScript.
Want to contribute to JSDoc? Please read CONTRIBUTING.md.
Installation and Usage
JSDoc supports stable versions of Node.js 8.15.0 and later. You can install
JSDoc globally or in your project's node_modules folder.
To install the latest version on npm globally (might 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.6.3). We recommend using the tilde
operator instead (for example, ~3.6.3), which limits updates to the most
recent patch-level version. See
this Stack Overflow answer for
more information about the caret and tilde operators.
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
If you installed JSDoc globally, 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 templates and other tools to help you generate and customize your documentation. Here are a few of them:
Templates
- jaguarjs-jsdoc
- DocStrap (example)
- jsdoc3Template (example)
- minami
- docdash (example)
- tui-jsdoc-template (example)
- better-docs (example)
Build tools
Other tools
For more information
- Documentation is available at jsdoc.app.
- Contribute to the docs at jsdoc/jsdoc.github.io.
- Join JSDoc's Slack channel.
- Ask for help on the JSDoc Users mailing list.
- Post questions tagged
jsdocto Stack Overflow.
License
JSDoc is copyright (c) 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc.
JSDoc is free software, licensed under the Apache License, Version 2.0. See the
LICENSE file for more details.