使用 JSDoc 3 语法指定对象的 class 的正确方法是什么?
What is the correct way to specify an object's class with the JSDoc 3 syntax?
如果我的代码创建了 ecmascript 6 之前的样式 "class",即像这样的构造函数:
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
如果它是 class,您可以直接使用它:
/**
* @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) {
// ...
}
如果我的代码创建了 ecmascript 6 之前的样式 "class",即像这样的构造函数:
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
如果它是 class,您可以直接使用它:
/**
* @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) {
// ...
}