jsdoc @typedef - 如何正确声明函数? [英] jsdoc @typedef - how to declare function properly?
本文介绍了jsdoc @typedef - 如何正确声明函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的jsdoc声明。
Here is my jsdoc declaration.
我应该如何调整它,以便实际 MyNewType.logFirst
属性引用 logFirst
函数,我在下面注释了吗?
How should I adjust it, so that MyNewType.logFirst
property actually references logFirst
function, which I've annotated below?
// my-new-type.js
/**
* MyNewType definition
* @typedef {Object} MyNewType
* @property {function} logFirst
* @property {function} logSecond
*/
/**
* @param {number} first
* @param {number} second
* @returns MyNewType
*/
module.exports = (first, second) => {
/**
* logs first argument
* @param {number} times
*/
function logFirst(times) {
for (let i = 0; i < times; i++) {
console.log(first);
}
}
/**
* logs second argument
* @param {number} times
*/
function logSecond(times) {
for (let i = 0; i < times; i++) {
console.log(second);
}
}
return {
logFirst,
logSecond
};
};
重要的是,我们保持这种工厂结构。
It's important, that we keep this kind of "factory" structure.
目前 - 这是我收到的:
Currently - this is what I receive:
我想要我的IDE使用 logFirst
定义绑定 MyNewType.logFirst
。
I want my IDE to bind MyNewType.logFirst
with logFirst
definition.
推荐答案
万一它可以帮助任何人,因为OP是我的同事:
Just in case it helps anyone, cause OP is my colleague:
// my-new-type.js
/**
* MyNewType definition
* @typedef {MyNewType} MyNewType
* @param {number} first
* @param {number} second
* @property {function} logFirst
* @property {function} logSecond
* @returns MyNewType
*/
var MyNewType = module.exports = (first, second) => {
/**
* logs first argument
* @typedef {number} logFirst
* @param {number} times
*/
function logFirst(times) {
for (let i = 0; i < times; i++) {
console.log(first);
}
}
/**
* logs second argument
* @param {number} times
*/
function logSecond(times) {
for (let i = 0; i < times; i++) {
console.log(second);
}
}
return {
logFirst,
logSecond
};
};
这对我们来说效果很好。
This has worked well for us.
这篇关于jsdoc @typedef - 如何正确声明函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文