VSCode 应该报告从编译中排除的 TS 文件的错误吗?

Should VSCode report errors for TS files that are excluded from compilation?

我将此 Bug Report 和 VSCode 一起归档,因为我已将 *.spec 文件排除在编译之外,因为我不想将这些文件包含在 NPM 分发中。

我仍然希望看到它们通过 VSCode 工具正确编译。

目前情况VSCode intellisense 报告无法导入路径上可用的导入,这会引发很多错误,将项目规范文件涂成红色等。

在我的报告中,我说过VSCode错误报告和编译应该是两个不同的问题。 VSCode 不能同时检查文件是否正确并将其从编译中排除。两者并不相互排斥。

我已向 VSCode 请求分类,但到目前为止问题仍未解决,但我想看看其他人在 SO 上有什么。是错误还是报告中的结论是正确的?

IIUC,现在 VS Code 使用默认编译器选项为 tsconfig.json 未包含的文件(包括 tsconfig.json 根本不存在的情况)使用一种语言服务实例,并且当tsconfig.json 存在,它使用第二语言服务实例,它会急切地加载所有包含的文件并使用指定的编译器选项。我相信您建议当 tsconfig.json 存在时,第一个语言服务实例应该使用 tsconfig.json 中的编译器选项,但具有与现在相同的文件加载行为。这将稍微增加复杂性,老实说,当 tsconfig.json 存在时编辑从 tsconfig.json 中排除的文件的体验仍然会非常混乱:您的一些文件将看到全局定义,而其他文件则不会, "find all references" 会给你部分结果。在我看来,您的提议似乎是对现状的合理替代方案,但我不明白您为什么要与 VS Code 团队抗争,而不是仅仅创建两个 tsconfig.json 文件,这是明确的,并为您提供您真正想要的统一编辑体验。 (或者您是否建议应该有一个单一的语言服务来忽略排除并急切地加载项目目录下的所有 .ts(x?) 文件?我很确定这不会成功,因为它会在许多情况下引起问题.)