查看 VS Code 设置,似乎没有针对每个项目的选项来设置 Typescript 编译器。我可以将 VS Code 设置为使用通过 NPM 安装的 1.5 alpha 编译器吗?在 tsconfig 文件中引用这个编译器会起作用吗?
编辑:只是想补充一点,我想编译到 ES6,如果这有区别的话。
查看 VS Code 设置,似乎没有针对每个项目的选项来设置 Typescript 编译器。我可以将 VS Code 设置为使用通过 NPM 安装的 1.5 alpha 编译器吗?在 tsconfig 文件中引用这个编译器会起作用吗?
编辑:只是想补充一点,我想编译到 ES6,如果这有区别的话。
我现在已经验证了这一点 - 您可以编辑您的 tasks.json 文件以指向您喜欢的任何版本。下面的示例指向 1.5 测试版,但您可以指向 1.4……或者如果您想要果味,我想甚至可以指向 0.8。
{
"version": "0.1.0",
// The command is tsc.
"command": "C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.5\\tsc",
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
// Under windows use tsc.exe. This ensures we don't need a shell.
"windows": {
"command": "C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.5\\tsc.exe"
},
// args is the HelloWorld program to compile.
"args": ["app.ts"],
// use the standard tsc problem matcher to find compile problems
// in the output.
"problemMatcher": "$tsc"
}
好吧,感谢上面的史蒂夫和巴萨拉特,我确实偶然发现了答案,所以这是我采取的步骤。这是编辑 tasks.json 和 tsconfig.json 文件的组合。现在我使用的是 TS 1.5 alpha,它编译为 ES6 代码。
打开 tasks.json 文件。您可以使用CTRL
++并键入“配置任务运行器”SHIFT
来执行此操作。P
如果“./settings/”文件夹中尚不存在 tasks.json 文件,这将为您创建一个文件。史蒂夫对另一个问题的回答指出了这一点。
保留第一个未注释的任务。我们将以这种方式修改该任务:
2a. 对于“命令”,该值设置为 npm 安装的 TS 1.5 alpha(这是 TS 的本地安装 - 不是带有-g
选项的全局安装):
"C:\\path\\to\\node_modules\\.bin\\tsc.cmd"
我在 Windows 上,所以一定要使用“tsc.cmd”,而不仅仅是“tsc”。
2b。注释掉整个“windows”属性。
2c。注释掉“args”属性。如果您在此处输入文件名 或${file}
,编译器将tsconfig.json
完全忽略您的文件。
这就是这个文件。
3a。在我的情况下,我完全删除(不仅仅是注释掉)“文件”属性,因为我希望项目中的所有 TS 文件都能编译。
3b。在编译器选项中,将“target”更改为“ES6”并完全删除了“module”选项(将其注释掉给了我一个错误)。ES6 不需要“模块”。
该文件的主要部分现在如下所示:
"version": "1.5.0-alpha",
"compilerOptions": {
"target": "ES6",
"declaration": false,
"noImplicitAny": false,
"removeComments": false,
"noLib": false
},
"filesGlob": [
"./**/*.ts",
"!./node_modules/**/*.ts"
],
// optional format code options omitted...
现在,当我对 TS 文件进行更改时,按ctrl
++运行编译器,输出为 ES6 javascript shift
。b
非常感谢史蒂夫和巴萨拉特。当史蒂夫把我推得更远时,我给了他答案。
我将 VS Code 设置为使用我通过 NPM 安装的 1.5 alpha 编译器
您可以使用它来构建,但不能将其用作语言服务。
注意:VS Code 附带 TypeScript 1.5 beta,它比 1.5 alpha 更新,所以你可能不希望它使用 alpha :)