我正在使用 VScode(但它在任何代码编辑器中都应该是相同的),在下面的代码中,当我将鼠标悬停在
Circle
上时,它会显示我编写的 jsdoc 的内容,但不会显示当我将鼠标悬停在参数radius
时显示它们。这是什么问题?
唯一的方法是将jsdoc写在
constructor
上方,因为这在过去有效吗?
简单来说,在构造函数之前定义jsdoc和在类名之前定义有什么区别
/**
* This class represents a circle and can calculate its perimeter and area
* https://en.wikipedia.org/wiki/Circle
* @constructor
* @param {number} radius - The radius of the circle.
*/
export default class Circle {
contructor(radius) {
this.radius = radius
}
perimeter = () => {
return this.radius * 2 * Math.PI
}
area = () => {
return Math.pow(this.radius, 2) * Math.PI
}
}
唯一的方法是将 jsdoc 写在构造函数上方,因为这在过去有效吗?
是的。
类文档显示传递给构造函数的参数的描述是在构造函数的文档中指定的,而不是在类中指定的。
/** Class representing a point. */ class Point { /** * Create a point. * @param {number} x - The x value. * @param {number} y - The y value. */ constructor(x, y) { // ... }
还指出:
您不需要在 ES 2015 类中使用 @class 和 @constructor 等标签 - JSDoc 只需解析您的代码即可自动识别类及其构造函数。
@constructor
用于编写不带 class
关键字的传统构造函数。