如果我的代码创建了前eecscript 6样式的“类”,即这样的构造函数:

function MyDBPlugin() {
    // ...
}


并且我正在使用JSDoc3方案来记录另一个以MyDBPlugin实例为参数的函数,我该如何表示MyDBPlugin对象?
我的第一个猜测是:

/**
 * Some function which takes an instance of MyDBPlugin as an argument
 *
 * @param {Object} plugin An instance of the MyDBPlugin class
 */
function query_database(plugin) {
    // ...
}


{Object}似乎没有什么用处,使用类名{MyDBPlugin}更具描述性,例如:

/**
 * Some function which takes an instance of MyDBPlugin as an argument
 *
 * @param {MyDBPlugin} plugin An instance of the MyDBPlugin class
 */
function query_database(plugin) {
    // ...
}


如何用JSDoc语法表示MyDBPlugin对象?

最佳答案

来自文档:http://usejsdoc.org/tags-type.html

如果是一门课,您可以直接使用它:

/**
* @param {myNamespace.MyClass}
*/


如果是结构,则可以按照上述或您提到的相同方式创建自己的@typedef http://usejsdoc.org/tags-typedef.html并使用它:

/**
* Some function which takes an instance of MyDBPlugin as an argument
*
* @param {MyDBPlugin} plugin An instance of the MyDBPlugin class
*/
function query_database(plugin) {
  // ...
}

10-06 12:47