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

How do I use TypeScript 1.6 with Visual Studio Code to get generators support?

我在 Visual Studio 代码中一直以 ES6 为目标,但是当我尝试切换到 TypeScript 时,它会抛出如下错误:

Generators are only available when targeting ECMAScript 6

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

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

所以我尝试了 npm install -g typescript@1.6.0-beta 但看起来 VSCode 不在乎。

Generators are not currently supported.

如何让 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"

但是,/usr/local/lib/node_modules/typescript/bin/tsc --target ES6 app.ts 在终端中手动使用确实有效。

我知道了!

1。智能感知

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

您可以在 user/workspace 设置中执行此操作,也可以在 .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" 设置为自定义位置。

如果您安装 nightly (npm install -g typescript@next),您可以指向该版本的 TypeScript 的 lib 文件夹。

更多

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