【问题标题】:Using JSDoc to document module exporting class使用 JSDoc 记录模块导出类
【发布时间】:2020-02-09 15:00:54
【问题描述】:

CommonJS 模块中的简单类具有以下 JSDoc cmets:

/** 
 * Class representing a list of items.
 * */
module.exports = class List {  

    /**
     * Create a list.
     */
    constructor(){
        this.items = [];
    }

    /**
     * Add an item to the list.
     * @param {String} item - The name of the eitem.
     * @param {Number} qty - The number of items to add.
     */
    add(item, qty) {
        var data = {item: item, qty: qty};
        this.items.push(data);
    }

    /**
     * Return the list of items.
     * @return {Array.<{item: String, qty: Number}>} An array containing the items.
     */
    getAll(){
        return this.items.map( (element, index) => ({key: index, item: element.item, qty: element.qty}));
    }

    /**
     * Delete a single item.
     * @param {Number} id - The index to be deleted.
     */
    delete(id){
        this.items.splice(id, 1);   
    }

    /**
     * Return the number of items in the list.
     * @return {Number} The number of items.
     */
    count(){
        return this.items.count;
    }

}

当我生成文档时,我丢失了类的名称。这不是被称为 List,而是被标记为 exports,请参见下面的屏幕截图。如何使该工具正确地将模块标记为 List

【问题讨论】:

    标签: javascript node.js class ecmascript-6 jsdoc


    【解决方案1】:

    尝试:

    /**
     * Class representing a list of items.
     * */
    class List {
    
        /**
         * Create a list.
         */
        constructor(){
            this.items = [];
        }
    
        /**
         * Add an item to the list.
         * @param {String} item - The name of the eitem.
         * @param {Number} qty - The number of items to add.
         */
        add(item, qty) {
            var data = {item: item, qty: qty};
            this.items.push(data);
        }
    
        /**
         * Return the list of items.
         * @return {Array.<{item: String, qty: Number}>} An array containing the items.
         */
        getAll(){
            return this.items.map( (element, index) => ({key: index, item: element.item, qty: element.qty}));
        }
    
        /**
         * Delete a single item.
         * @param {Number} id - The index to be deleted.
         */
        delete(id){
            this.items.splice(id, 1);
        }
    
        /**
         * Return the number of items in the list.
         * @return {Number} The number of items.
         */
        count(){
            return this.items.count;
        }
    
    }
    
    module.exports = {
        List
    };
    

    它是

    的语法糖
    module.exports = {
        'List': List
    };
    

    它将添加缺少的“列表”名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-27
      • 2017-01-17
      • 2015-11-27
      • 2017-11-05
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多