gpt4 book ai didi

javascript - 如何在 mixins 上的扩展/继承情况下正确定义 Node.js 模块的 JSDoc

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:42 26 4
gpt4 key购买 nike

我有三个 Node.js 模块。一个叫user继承自 base模块。 handler模块与 user 的实例交互:

基础模块 - 正在继承:

/**
* Base module
*/
'use strict';
const _ = require("underscore");

module.exports = {

name: "base",

/**
* Extent object helper
*/
extend: function(child) {
return _.extend({}, this, child);
},

/**
* Delegate event method
*/
delegate: function () {
//some delegate event
}
};

用户模块 - 就像模型:

/**
* User module
*/
'use strict';
const BaseController = require("./base");

module.exports = BaseController.extend({

name: "user",

/**
* Init function
*/
init: function() {
}
});

处理程序 - 就像 Controller :

/**
* Handler module
*/
'use strict';
const user = require("./user");

module.exports = {

name: "handler",

/**
* Some action
*/
someAction: function() {
user.delegate(); // <-- delegate() is not known as a method of "user"
}
};

代码中重要的部分用注释标记了// <-- delegate() is not known as a method of "user"因为它继承了 base模块。我真的很想知道如何在这个模块上创建完整的 JSDoc,以使我的 IDE 支持代码自动完成,特别是 user.delegate() 。提供所有必需的 JSDoc-Blocks 的答案将是一个很棒的交易!

最佳答案

您可以查看@inheritdoc指令:

/**
* @classdesc Abstract class representing a network connection.
* @class
*/
function Connection() {}

/**
* Open the connection.
*/
Connection.prototype.open = function() {
// ...
};


/**
* @classdesc Class representing a socket connection.
* @class
* @augments Connection
*/
function Socket() {}

/** @inheritdoc */
Socket.prototype.open = function() {
// ...
};
<小时/>

所以,针对您的具体情况

/**
* @class
* @augments Base
**/
module.exports = {
name: 'User'
};

关于javascript - 如何在 mixins 上的扩展/继承情况下正确定义 Node.js 模块的 JSDoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43329115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com