typescript - 在 VS Code 中的每个 TypeScript 编译上获取 "error TS5055"消息 Storm

标签 typescript visual-studio-code

我正在尝试使用 VS Code 1.6.1 将基于 JavaScript 的快速项目转换为 TypeScript。我现在可以在 TypeScript 中添加新文件并将它们编译为 JavaScript。但是,每次我编译一个 TypeScript 文件时,我都会得到一长串错误 - 每个现有(遗留)JavaScript 文件一个 - 说:

error TS5055: cannot write file XYZ.js because it would overwrite input file

我该如何阻止它?

我的 tsconfig 看起来像这样:

{
    "compilerOptions": {
        "module": "commonjs",
        "sourceMap": true,
        "watch": true,
        "allowJs": true
    }
}

最佳答案

这个问题的发生是因为 TypeScript 编译器试图转换所有内容,包括已经是 JavaScript 的文件,在这种情况下,它会提示它将覆盖其输入,这是可以理解的。我没有发现可以阻止此行为的“include”和“exclude”语句的组合。

解决方案是在 compilerOptions 中添加一个新字段“outDir”,所以它看起来像这样

{
    "compilerOptions": {
        "module": "commonjs",
        "sourceMap": true,
        "watch": true,
        "allowJs": true,
        "outDir": "generated"
    }
}

这会导致tsc将你项目中的所有ts和js复制到指定的文件夹中。不会再出现那些讨厌的 TS5055 错误。

如果你项目中的导入引用都是相对的,这应该没问题。否则,例如,如果您的 Node.js 项目在顶层使用“公共(public)”文件夹,您可能必须相应地修改代码中的路径引用。

关于typescript - 在 VS Code 中的每个 TypeScript 编译上获取 "error TS5055"消息 Storm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40460790/

相关文章:

Angular 2 - 模块在刷新时加载两次

javascript - textarea resize 在 IE 中不起作用,我想在 IE 中调整大小,它在 chrome 中工作

visual-studio-code - 如何在 Visual Studio Code/VS Code 中突出显示当前行号

visual-studio-code - VSCode 和 clang 格式 : use my own file extension

c# - 循环遍历响应对象 Angular

typescript - 如何获取数组项的类型?

visual-studio-code - 在 VSCode 中的两个选项卡之间来回切换

debugging - flutter 调试器不会在断点处停止

ubuntu - 右键单击弹出菜单在vscode中立即消失

typescript - 如何打开 typescript 通用内部类型