首页 > 解决方案 > 如何告诉 JSDoc 我正在扩展具有特定类型的模板类?

问题描述

我需要一些包装类来将值从 XML 转换为 javascript 并返回。设置如下所示:

/**
 * @template T
 * */
class Value {
    /**
     *
     * @param {Element} valueNode
     */
    constructor(valueNode) {
        this.node = valueNode;
    }
    /** @type {T} **/
    get value() {
        return this.node.hasAttribute("value") ? this.convertToJS(this.node.getAttribute("value")) : null;
    }

    /**
     * Must be overriden and provide JS object/variable from the string value
     * @param {string} stringValue
     * @returns {T}
     */
    convertToJS(stringValue) { }

}

/**
 * @class
 * @extends Value<boolean>
 * */
class BoolValue extends Value {
    /**
     * Must be overriden and provide JS object/variable from the string value
     * @param {string} stringValue
     * @returns {T}
     */
    convertToJS(stringValue) { return stringValue == "true"; }
}

当我有一个实例 if 时BoolValue,我希望 Visual Studio 知道它myVar.value是一个boolean.

如何告诉 JSDoc 一个类扩展了具有特定类型的模板类?

标签: javascriptjsdoc

解决方案


我可能不明白这个问题,但是

当我有一个实例 if 时BoolValue,我希望 Visual Studio 知道它myVar.value是一个boolean.

适用于您当前的设置:D

在此处输入图像描述


推荐阅读