VSCode TypeScript 智能感知不起作用

TPi*_*042 3 intellisense typescript visual-studio-code typescript2.0

从字面上看,我在这里拉头发。Mac 上的 VSCode 1.6.0,Typescript 2.0.2,但我也尝试过 2.0.0。

我试过以 es5、es6 为目标,有或没有 commonjs 模块目标。我无法获得项目本地其他文件的智能感知,也无法获得 node_modules 文件夹中的任何内容。我什至将 node_modules 中的 typescript 文件安装到我的 Typings 文件夹中,但这些文件不起作用。

我得到的唯一智能感知是我全局安装的类型。

{
    "compilerOptions": {
        "target": "es6",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "allowSyntheticDefaultImports": true,
        "moduleResolution": "node"
    },
    "exclude": [
        "node_modules"
      ]
}
Run Code Online (Sandbox Code Playgroud)

sel*_*bie 5

经过大量的反复试验,我终于让 Node、Typescript、VSCode(以及 Visual Studio)和 IntelliSense 正常工作。这似乎也适用于 WebStorm。

从命令提示符创建一个新的 Typescript 项目:

  1. mkdir newproject (或您想要的任何目录名称)
  2. cd newproject
  3. npm init -f (这将创建一个 package.json)
  4. npm install @types/node --save-dev (这将创建一个 nodes_module 文件夹和一个 package-lock.json 文件)
  5. 添加初始tsconfig.json文件。它可以很简单{"files" : ["main.ts"] }
  6. 添加一个初始空main.ts文件以开始使用

现在启动 VS Code 指向它以打开在上述步骤中创建的文件夹。

最重要的import声明模块使用时使用关键字。否则,IntelliSense 将无法正常工作。我花了很长时间才意识到这是缺失的一步。

取而代之的是:

var http = require("http");
Run Code Online (Sandbox Code Playgroud)

输入:

import http = require("http");
Run Code Online (Sandbox Code Playgroud)

神奇的是,您已经有了一个使用 IntelliSense 工作的准系统 Typescript + Node 项目。