如何在vscode中使用自己的javascript文件获取intellisense

时间:2017-08-07 14:13:15

标签: visual-studio-code vscode-settings javascript-intellisense

我正在使用vscode Version 1.14.2 (1.14.2)而我正试图获取我自己的javascript文件的智能感知功能。为了测试这个,我创建了两个文件test.jsmain.js。在test.js我有以下代码......

{
  Test = {};

  let testObj = {};

  Test.getAllTest = function() {
    return testObj;
  };
}

在我的main.js文件中,我有以下内容......

/// <reference path="./test.js" />
{
  Test.
}

我想要对我自己的代码进行智能感知。是否有可能在vscode中实现这一目标?

2017年8月10日更新

以前的代码,你可以注意到它是一个愚蠢的片段。让我粘贴我正在进行的练习中的代码......

"use strict";

var $ = require("../lib/node_modules/jquery/dist/jquery.min.js");

let line = console.log;
let bakery = {};

bakery.loadInventory = function() {
  return new Promise(function(resolve, reject) {
    $.ajax({
      url: "https://cake-2444b.firebaseio.com/ccakes.json"
    })
      .done(function(data) {
        resolve(data);
      })
      .fail(function(error) {
        reject(error);
      });
  });
};

module.exports = bakery;

jQuery与--save-dev一起安装,我怀疑我出于这个原因我不能require('jQuery')。之前的代码位于名为bakery-factory.js的文件中。贝娄,我包括一个屏幕截图,显示intellinsense不适合该模块。

enter image description here

我想补充一点,我正在利用Grunt来完成一些任务。我不确定这是否与intellisense问题有关。我对编辑非常满意,我希望能够让它发挥作用。

2017年8月11日更新

我遵照你的建议......

let bakery = {
    loadInventory: function(...

我以前的方式不起作用......

let bakery = {}

bakery.loadInventory = function(...

感谢您解释!!

1 个答案:

答案 0 :(得分:0)

VSCode 1.15在这种情况下只能提供有限的智能感知。有两个问题:

  • 我们不支持隐式全局分配,例如Test = ...。您需要声明变量var Test = ...,然后创建一个简单的jsconfig.json文件,以便工作区中的所有JS文件共享相同的全局上下文。

  • 我们的intellisense也不会识别在创建对象后添加到对象的属性。这是一个错误,并通过以下方式进行跟踪:https://github.com/Microsoft/TypeScript/issues/10868相反,您需要在分配时声明命名空间成员:var Test = { getAllTest: ... }

如果可能,我建议您考虑使用具有良好定义的导入和导出的适当模块。这些将提供更好的IntelliSense体验,更重要的是,使代码更易于维护和更容易推理。