如何从index.d.ts文件手动导入类型,并告诉VS Code intellisense变量属于该类型?

时间:2019-12-25 22:19:05

标签: javascript typescript visual-studio-code jsdoc

我有以下问题:我正在基于Express.js(使用纯JS而不是TS)构建一些程序。 我正在使用Sequelize作为ORM。

我有“存储库”类,该类从BaseRepository类继承功能。这是一个UserRepo示例:

   class UserRepo extends BaseRepo{
        constructor(model){
            super(model);
        }    
    }

父类BaseRepo:

class BaseRepo{

    constructor(model){//VSCODE HAS NO CLUE WHAT TYPE THAT IS
        this.model = model
    }
    async index(){
        const records = await this.model.findAll();
        return records;
    }

    ...

}   

问题在于VSCode不知道this.model是 Sequelize模型,因为它被注入到其他地方。因此,智能感知无法正常工作。

是否可以手动导入模型类型声明,并告诉VSCode使用它,也许使用JSDoc?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Typescript,请在​​构造函数中像这样设置Type

constructor(model: Sequelize){
    this.model = model
}

如果您使用的是Javascript,请像这样编写JSDoc:

/**
 * @param {Sequelize} model
 */
constructor(model){
    this.model = model
}