首页 > 解决方案 > JSDoc 泛型类型 - WeakRef 的 @typedef

问题描述

如何为泛型类型实现 typedef?

这是 WeakRef 类型定义:

/**
 * @typedef {Object} WeakRef
 * @property {function(): any} deref
 */

这是使用,清单内的问题:

export class MyCl {
    /**
     * @type {WeakRef}
    */
    #ref;

    /**
     * @param {HTMLElement} el
    */
    myMethod(el) {
        this.#ref = new WeakRef(el);
    }

    myMethod2() {
        let htmlEl = this.#ref.deref(); // <========
        // htmlEl here is 'any', it must be 'HTMLElement'
    }

我试试

/**
 * @typedef {Object} WeakRef
 * @template T
 * @property {function(): T} deref
 */

但不知道如何在这里设置 T:

/**
 * @type {WeakRef}
 * how to say T is HTMLElement <========
*/
#ref;

标签: javascriptjsdoc

解决方案


推荐阅读