JSDoc 未获取数据 child 属性类型覆盖

JSDoc not picking up on data child attribute type override

我在使用由 child class 扩展的 parent class 时发现一个问题。 两个 class 都有一个 'data' 属性,在 parent class 中是通用的 'Object' 类型,在 child class 中它是 'DogData'.

类型

parent 的构造函数正在设置 'this.data = data',它应该将类型覆盖为 child 的属性类型,但这并没有发生。

请在下面找到一个可重现的小例子:

我希望我遗漏了什么,如果我遗漏了请不要犹豫指出。

提前致谢

 * The animal base class
 * @class
 */
class Animal {
    /**
     * @param {number} id The ID of the animal
     * @param {Object} data The data of the animal
     */
    constructor (id, data) {
        this.id = id
        this.data = data
    }
}

/**
 * The Dog class
 * @class
 * @extends Animal
 */
class Dog extends Animal {

    /**
     * @typedef DogData
     * @property {number} age
     * @property {string} name
     */

    /**
     * @param {number} id The ID of the dog
     * @param {DogData} data The data of the dog
     */
    constructor (id, data) {
        super(id, data)
    }
}

const dog = new Dog(1, { age: 10, name: 'Foobar' })
dog.data. // Will only autocomplete if this.data is explicitly set inside the Dog constructor

在构造函数前定义属性,并在其上使用@type

class Dog extends Animal {

    /**
     * @typedef DogData
     * @property {number} age
     * @property {string} name
     */

    /**
     * @type {DogData}
     */
    data;

    /**
     * @param {number} id The ID of the dog
     * @param {DogData} data The data of the dog
     */
    constructor (id, data) {
        super(id, data)
    }
}