VSCode TypeScript智能感知无法工作

3
我这里正在抓狂,真的是毛都要拔光了。我使用的是Mac上的VSCode 1.6.0和Typescript 2.0.2版,但我也试过2.0.0版,无论是以es5、es6为目标,还是有没有使用commonjs模块化方案,我都没法在本地项目文件或node_modules文件夹中获得智能提示。我甚至将node_modules中的typescript文件安装到我的typings文件夹中,但还是无法正常工作。唯一能得到的智能提示只有我全局安装的typings。
{
    "compilerOptions": {
        "target": "es6",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "allowSyntheticDefaultImports": true,
        "moduleResolution": "node"
    },
    "exclude": [
        "node_modules"
      ]
}

我也尝试过1.8.10和2.0.6,这应该解决了节点模块的问题。但事实上并没有解决。 - TPiddy042
你是如何导入模块和其他文件的? - Matt Bierner
1个回答

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");

请键入:

import http = require("http");

神奇的是,你现在拥有了一个基本的 Typescript + Node 项目,并且 IntelliSense 已经可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接