在Visual Studio 2015 Update 3中的Typescript 2.2.1项目中,我在错误列表中得到了数百个错误,例如:

不能写入文件'C:/{{my-project}}/node_modules/buffer-shims/index.js',因为它会覆盖输入文件。

它一直都是这样的。它实际上并没有阻止构建,并且一切都可以正常工作,但是错误列表会分散注意力,并且很难在发生“真正的”错误时定位它们。

这是我的tsconfig。json文件

{
  "compileOnSave": true,
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "noImplicitAny": true,
    "removeComments": true,
    "sourceMap": true,
    "target": "ES5",
    "forceConsistentCasingInFileNames": true,
    "strictNullChecks": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "noFallthroughCasesInSwitch": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,

    "typeRoots": [],
    "types": [] //Explicitly specify an empty array so that the TS2 @types modules are not acquired since we aren't ready for them yet.
  },
  "exclude": ["node_modules"]
}

我怎样才能消除这些错误呢?


当前回答

正如GitHub问题中所建议的那样,理解这个问题的最佳选择是使用tracerresolution标志启动tsc命令

tsc - traceResolution

其他回答

我遇到过这个问题,因为VSCode自动完成dist/文件夹中的文件。

import { SomeClass } from '../../dist/xxx/someclass' 

要解决这个问题,只需修复导入:

import { SomeClass } from './someclass' 

我也有同样的问题,这是因为排除选项。如果指定了exclude选项,则还必须添加输出目录。

我有这样的排除选项"exclude": ["resources/js/**/*", "node_modules"]和输出目录设置为outDir:"./build"。

添加构建到排除选项修复了这个问题。

排除:[“资源/ js / * * / *”、“node_modules”,“构建”)

如果你在一个大的代码或monorepo中工作,有时只是重新启动你的编辑器就足够了,或者如果你使用vscode重新启动typescript语言服务器。

使用tsc——build——explainFiles来跟踪.d。Ts被包含在您的构建中!

e.g.

dist/index.d.ts
  Imported via '..' from file 'mocks/mock-requests.ts'

在这种情况下,我应该导入'..'以外的东西…

看到https://www.typescriptlang.org/tsconfig explainFiles

我在一个相当大的单仓库中开发时遇到了这些错误,其中各种包依赖于对其他TypeScript包的引用。虽然错误不会影响构建或运行时,但当打开tsconfig时,它们仍然存在于VS Code问题面板中。json文件。

上面的一些答案确实帮助我减少了错误的数量,但直到我重新启动VS Code TypeScript服务器,所有的错误似乎都神奇地消失了。

在VS Code中:

Shift + command + P打开Mac上的命令托盘。开始输入“TypeScript”,并导航到“TypeScript: Restart TS Server”。按回车键

如果幸运的话,已修复的错误应该会自动消失。