如何使用TypeScript 1.6与Visual Studio代码来获得生成器的支持?

我一直在Visual Studio Code中定位ES6,但是当我尝试切换到TypeScript时,它会抛出如下错误:

生成器仅在定位ECMAScript 6时可用

但是我的tsconfig.json确实有ES6目标:

{ "compilerOptions": { "target": "ES6", "module": "amd", "sourceMap": true } } 

所以我试了npm install -g typescript@1.6.0-beta typescript@1.6.0-beta,但是看起来VSCode并不在意。

发电机目前不支持。

我怎样才能让TypeScript和生成器在VS Code中一起正常工作?

更新

typescript.tsdk更改为1.6二进制文件似乎可以修复IntelliSense错误,但是这个tasks.json仍然会打印出error TS1220: Generators are only available when targeting ECMAScript 6 or higher.

 "version": "0.1.0", "command": "/usr/local/lib/node_modules/typescript/bin/tsc", "showOutput": "silent", "windows": {"command": "tsc.exe"}, "isShellCommand": true, "args": ["app.ts"], "problemMatcher": "$tsc" 

但是,在terminal中手动使用的/usr/local/lib/node_modules/typescript/bin/tsc --target ES6 app.ts确实可行。

我现在知道了!

1.智能感知

您可以使用typescript.tsdk设置将VSCode指向TypeScript二进制文件。 将TypeScript升级到1.6,并正确设置位置。

您可以在用户/工作区设置中执行该操作,也可以在.vscode / settings.json文件中执行每个项目。 OS X示例:

 "typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib" 

2.编译器

您还需要确保.vscode / tasks.json指向新的二进制文件,并使编译器以显式项目模式运行 ,即使用tsconfig.json而不是将文件列表作为参数进行编译。

 { "version": "0.1.0", "command": "/usr/local/lib/node_modules/typescript/bin/tsc", "showOutput": "silent", "windows": {"command": "tsc.exe"}, "isShellCommand": true, "args": [], //do not pass any files to the compiler. This way it will use tsconfig.json where you can set target: "ES6" "problemMatcher": "$tsc" } 

最后是tsconfig.json (在项目的根目录下):

 { "compilerOptions": { "target": "ES6", //The key, of course. "module": "amd", "sourceMap": true }, "exclude": [ "node_modules", ".vscode" ] } 

之后重新启动编辑器!

您可以在VS Code中更改您的用户设置,并将"typescript.tsdk"设置为自定义位置。

如果你每晚安装( npm install -g typescript@next ),你可以指向那个版本的TypeScript的lib文件夹。

更多

使用ts latest的原因和设置说明包括在这里: https : //basarat.gitbooks.io/typescript/content/docs/getting-started.html#typescript-version