JSDoc:使用来自不同模块的 ES6 类和 @type 标签

问题描述

我对 JSDoc 比较陌生,遇到了一个我无法解决的问题。如果相关,我使用的是 VSCode 而不是使用 TypeScript,只是普通的 JS。

假设我有 2 个像这样的 ES6 模块:

frontdoor.js

/**
 * @module frontdoor
 */

/**
 * Class representing a Front Door
 */
export class FrontDoor {
    // Class implementation
}

house.js

/**
 * @module house
 */

import {FrontDoor} from './frontdoor.js';

/**
 * Class representing a House
 */
export class House {
    
    /**
     * Constructs a new House object
     * @constructor
     */
    constructor() {
    
        /**
         * A FrontDoor instance
         * @type {FrontDoor}
         */
        this.frontDoor = new FrontDoor();      

    }

}

现在,虽然这在 House 的构造函数中将鼠标悬停在“frontDoor”上时有效(因为 VSCode 将正确的类型显示为“(property) House.frontDoor: FrontDoor”。但在结果中HTML 文档,“FrontDoor”未显示为指向 FrontDoor 类的链接

我也试过像这样直接链接到模块...

/**
 * A FrontDoor instance
 * @type {module:frontdoor.FrontDoor}
 */

显示了文档中的一个链接,但看起来有点乱,而且 VSCode 显示 '(property) House.frontDoor: any' 作为悬停时的类型。

我如何正确设置此链接,以便在悬停时显示正确的类型,并将“FrontDoor”显示为文档中带有链接的类型)?我花了几天时间在 SO 和更广泛的互联网上查看类似的问题,但到目前为止一无所获。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)