如何使VSCode显示*未*在编辑器中打开的文件的TypeScript错误?

Jus*_*ant 5 typescript reactjs visual-studio-code create-react-app

在我的create-react-app@2.1.8TypeScript / React应用中,TS编译器错误仅显示在我在VS Code编辑器中打开的文件的“问题”窗格中。结果,有时我直到真正运行该应用程序时才捕获错误。

打开工作区或将更改保存到文件后,如何让TypeScript自动检查所有代码文件中的编译器错误?

我曾尝试将"watch": "tsc --watch"脚本添加为脚本package.json,然后npm run-script watch在集成的终端窗格中进行操作,但这有两个问题:

  • 错误显示在终端窗格中,但不填充VSCode中的“问题”窗格
  • 我必须手动运行它,而不是在工作区加载时自动启动

有更好的解决方案吗?

顺便说一句,这与在webstorm中显示项目范围内的TypeScript问题/错误是相同的问题,但是关于Visual Studio Code而不是webstorm。

Jur*_*els 53

截至2020 年 4 月 14 日,普遍可用的VS Code 中有一项实验性功能,可以启用项目范围的问题报告。将以下内容添加到您的settings.json:

"typescript.tsserver.experimental.enableProjectDiagnostics": true
Run Code Online (Sandbox Code Playgroud)

它是实验性的,可以同时压倒性的和平庸的。

注意这个空间

  • 2022 年 6 月 2 日,它仍然是一个实验性功能 (8认同)
  • 您还可以在 VSCode UI 中打开设置并搜索“experimental typescript”,然后将显示“启用项目诊断”设置。单击复选框后,它开始对我有用。 (4认同)
  • 对我有用的配置是“typescript.tsserver.experimental.enableProjectDiagnostics”:true。该团队正在积极致力于此。 (2认同)
  • 我添加了这个设置,重新启动 VS Code 但没有显示任何问题?(虽然我有一些) (2认同)

Jus*_*ant 13

截至 2019 年 11 月,不幸的是,开箱即用的 VS Code 不支持此功能。请参阅https://github.com/Microsoft/vscode/issues/13953

我能找到的最佳解决方法是向 tasks.json 添加一个将运行的任务tsc --watch,并将其配置为在工作区或文件夹打开时运行。

下面是 tasks.json 的示例配置。请注意,下面代码段中的“www”是指tsconfig.json您要检查的文件夹。将其替换为您自己的文件夹的名称,相对于您工作区的根目录。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "tsc watch",
            "type": "shell",
            "command": "./node_modules/.bin/tsc",
            "isBackground": true,
            "args": ["--watch", "--noEmit", "--project", "www"],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "reveal": "never",
                "echo": false,
                "focus": false,
                "panel": "dedicated"
            },
            "problemMatcher": "$tsc-watch",
            "runOptions": {
                "runOn": "folderOpen"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

请注意,默认情况下似乎未启用自动运行任务。要选择自动运行任务,请按照此处的说明操作:https : //stackoverflow.com/a/58866185/126352

此解决方案改编自@molinx在上面链接的 GitHub 问题中的回答,并且由于下面的@kumar303评论而得到改进。

  • 我快要吐了 (7认同)
  • 版本 1.30 添加了 `"runOn": "folderOpen"` https://code.visualstudio.com/updates/v1_30#_run-on-folder-open (2认同)