如何使用带有 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
我在 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