Jeff Williams eaa2cfb807 fix: correctly track interface members
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.
2020-12-12 19:24:20 -08:00
2015-01-14 08:08:57 -08:00
2019-09-21 13:35:25 -07:00
2019-07-21 15:12:49 -07:00
2019-05-05 12:14:31 -07:00
2019-07-21 16:14:41 -07:00
2019-12-29 22:14:07 -08:00
2019-07-14 10:50:53 -07:00
2017-07-05 21:45:19 -07:00
2019-12-07 12:11:09 -08:00

JSDoc

Build Status

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

Build tools

Other tools

For more information

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.

Description
An API documentation generator for JavaScript.
Readme Apache-2.0 82 MiB
Languages
JavaScript 99.4%
CSS 0.6%