May 18, 2022 0 Comments


  • @prop


The @property tag is a way to easily document a list of static properties of a class, namespace or other object.

Normally JSDoc templates would create an entire new page to display information about each level of a nested namespace hierarchy. Sometimes what you really want is to just list all the properties, including nested properties, all together on the same page.

Note that property tags must be used in doc comments for the thing that they are properties of, a namespace or a class for example. This tag is intended for simple collections of static properties, it does not allow you to provide @examples or similar complex information for each property, just the type, name and description.


In this example we have a namespace named “config.” We want all the information about the defaults property, including its nested values, to appear on the same page with the documentation for config.

A namespace with defaults and nested default properties
 * @namespace
 * @property {object}  defaults               - The default values for parties.
 * @property {number}  defaults.players       - The default number of players.
 * @property {string}  defaults.level         - The default level for the party.
 * @property {object}  defaults.treasure      - The default treasure.
 * @property {number}  defaults.treasure.gold - How much gold the party starts with.
var config = {
    defaults: {
        players: 1,
        level:   'beginner',
        treasure: {
            gold: 0

See Also

  • Contrast this tag with the @member tag.
  • @enum