在VS Code上编译的每个Typescript上都出现了“错误TS5055 ..”消息的风暴

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 从更改truefalse会告诉 typescript 编译器不要转译 javascript 文件。这应该可以解决问题。

https://www.typescriptlang.org/docs/handbook/compiler-options.html#compiler-options


Shi*_*Sao 7

默认情况下,当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)

  • `exclude` 已移至根级别,我在 TS v4.4.4 上进行了测试 (2认同)

mar*_*rew 6

造成此问题的原因是,打字稿编译器试图转换所有内容,包括已经是javascript的文件,在这种情况下,它可以理解地抱怨会覆盖其输入。我发现没有“ include”和“ exclude”语句的组合可以阻止此行为。

解决方案是将新字段“ outDir”添加到compilerOptions,因此如下所示

{
    “ compilerOptions”:{
        “ module”:“ commonjs”,
        “ sourceMap”:是的,
        “手表”:是的,
        “ allowJs”:是的,
        “ outDir”:“生成”
    }
}

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

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