获取 Visual Studio 代码,为自定义 Javascript 导入提供智能感知

Get Visual Studio Code to give intellisense for custom Javascript imports

我正在使用 TestComplete 编写自动化测试脚本。 TestComplete 主要支持 Ecmascript 2015,但它有一些问题导致智能感知无法正常工作。

这里有两个代码文件的例子:

文件:UsefulStuffFileName.js

class UsefulStuff {
    constructor(initValue) {
        this.initValue = initValue;
    }

    get someValue(){
        return this.initValue + " someValue";
    }

    doStuff(input) {
        return input + " stuff done";
    }
}

module.exports.UsefullStuff = UsefullStuff;

文件:WorkingHere.js

var useful = require('UsefulStuffFileName');

class WorkingHere {
    constructor() {
        this.usefullStuff = new useful.UsefulStuff("Hello");
    }

    doCoolStuff() {
        // I want intellisense options when I type the period after this.usefulStuff
        // The options would be someValue, doStuff() and initValue.
        //                                |
        //                                |
        //                                V
        let myVariable = this.usefullStuff.someValue;                
    }
}

我认为的怪癖是:

  1. 导出是通过这种风格完成的:module.exports.UsefullStuff = UsefullStuff;。 (这使得它可以与 TestComplete 一起使用。)
  2. "import"赋值给一个变量(var useful = require('UsefulStuffFileName');)
  3. 对象的"new"ing使用变量访问class(new useful.UsefulStuff("Hello");).

有没有配置 Visual Studio 代码来理解这些文件是如何相关的并给我智能感知?

注意:如果我尝试更标准的 import {UsefulStuff} from './UsefulStuffFileName';,我会收到来自 TestComplete 的错误提示 "Unexpected token import"。

这可以通过以下步骤完成。

  1. 将导入更改为如下所示:

    var { UsefulStuff } = require('UsefulStuff');

  2. 将 class 的实例化更改为如下所示:

    this.usefulStuff = new UsefulStuff("Hello");

  3. 添加一个名为 jsconfig.json 的文件并将其放入:

.

{
    "compilerOptions": {
      "baseUrl": "."      
    }
}