使用 JSDoc 设置 ES5 类的属性类型

Posted

技术标签:

【中文标题】使用 JSDoc 设置 ES5 类的属性类型【英文标题】:Set ES5 class' property type using JSDoc 【发布时间】:2018-02-01 15:22:16 【问题描述】:

我的课程有一个属性:

class MyClass 
    constructor() 
        this.property = null;
    

属性可以是nullArray 实例。我试过这个:

/**
 * @property property Array
 */
class MyClass ...

这个:

/**
 * @property MyClass.property Array
 */
class MyClass ...

还有这个:

class MyClass 
    /**
     * @property property Array
     */
    constructor() ...

我仍然在智能感知中看到这一点:

那么谁能告诉我如何正确地做到这一点?

【问题讨论】:

【参考方案1】:

到目前为止,最好的方法是:

class MyClass 
    constructor() 
        /** @type MyClass2 **/
        this.property = null;
    

它仍然有点问题,但大部分时间它都可以工作。

【讨论】:

如果属性是从构造函数参数中赋值的,那么它的类型可以由 Visual Studio(和 Visual Studio Code)推断出来。

以上是关于使用 JSDoc 设置 ES5 类的属性类型的主要内容,如果未能解决你的问题,请参考以下文章

在 TypeScript 和/或 JSDoc 中,如何指示记录类型中的某些属性名称是同一类型中兄弟属性的别名?

VS Code 中的 Vue Array Prop JSDoc TypeScript 错误:“ArrayConstructor”类型缺少“MyCustomType []”类型中的以下属性

如何使用 JSDoc 记录 ES6 类属性

用于接口属性的 TypeScript jsdoc

如何在 JSDoc 中记录字典?

将属性类型设置为类的类型