mar*_*rew 3 typescript visual-studio-code
我正在尝试使用VS Code 1.6.1将基于Javascript的快速项目转换为Typescript。现在,我可以在Typescript中添加新文件并将其编译为Javascript。但是,每次编译Typescript文件时,都会得到一长串错误-每个现有(旧式)Javascript文件一个错误-说
错误TS5055:无法写入文件XYZ.js,因为它将覆盖输入文件
如何停止呢?
我的tsconfig看起来像这样
{
“ compilerOptions”:{
“ module”:“ commonjs”,
“ sourceMap”:是的,
“手表”:是的,
“ allowJs”:是
}
}
小智 7
allowJs将 tsconfig.json 从更改true为false会告诉 typescript 编译器不要转译 javascript 文件。这应该可以解决问题。
https://www.typescriptlang.org/docs/handbook/compiler-options.html#compiler-options
默认情况下,当d.ts生成的tsc所有文件都在输出目录和子目录中找到时,也会发生错误。
假设您的输出在out目录中,您必须在 tsconfig.json 中排除它:
"compilerOptions": {
// All the options you want...
// Redirect output structure to the directory
"outDir": "out"
// Exclude here the directories you want ts do not compile...
"exclude": [
"out"
]
}
Run Code Online (Sandbox Code Playgroud)
造成此问题的原因是,打字稿编译器试图转换所有内容,包括已经是javascript的文件,在这种情况下,它可以理解地抱怨会覆盖其输入。我发现没有“ include”和“ exclude”语句的组合可以阻止此行为。
解决方案是将新字段“ outDir”添加到compilerOptions,因此如下所示
{
“ compilerOptions”:{
“ module”:“ commonjs”,
“ sourceMap”:是的,
“手表”:是的,
“ allowJs”:是的,
“ outDir”:“生成”
}
}
这将导致tsc将项目中的所有ts和js复制到指定的文件夹。这些讨厌的TS5055错误将不再存在。
如果项目中的导入引用都是相对的,则应该没问题。否则,例如,如果您的node.js项目在顶层使用“公共”文件夹,则可能必须相应地修改代码中的路径引用。
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |