我的应用程序编译(转换)就好了,但Visual Studio Code仍然显示很多错误:
在某些情况下(例如angular
和ionic
),问题是通过包含Angular / Ionic添加的全局变量/命名空间无法识别。大多数错误的形式为“找不到名字'angular / ionic / ng”(等)。
为了使事情变得更奇怪,我注意到在加载VS Code时最初打开的文件根本没有任何错误。红色下划线错误位于其他选项卡/编辑器中的其他文件中。
发生了什么事?我如何让VS Code始终如一地承认这些全局/名称空间确实存在?
答案 0 :(得分:7)
在追逐这个问题的许多悲伤的日子之后 - 我终于在VS Code GitHub上找到了GitHub Issue来解释发生了什么。
我的tsconfig.json
文件配置错误。为了解决这个问题,我删除了files
部分。您可能还需要在项目中将其删除,或者只是“修复”它以包含所有相关的.ts
文件。
添加文件[部分]会将我们的项目限制为这两个文件,如果您打开其他未被这两个文件引用的文件,则会将它们最终置于一个独立的虚拟项目中。您需要省略文件部分(然后tsconfig.json文件下的所有.ts文件将自动被视为项目的一部分),或者您需要在该部分列出项目的所有文件。
我原来的`tsconfig.json文件是:
{
"compilerOptions": {
"target": "es5",
"sourceMap": true,
"removeComments": true,
"noImplicitAny": true
},
"files": [
"typings/index.d.ts",
"src/typings/index.d.ts"
]
}
所以,VS Code认为我的项目只包含两个文件。我加载的其他.ts
文件被视为“孤立的虚拟项目” - 不难理解它们为什么会产生错误。
我将tsconfig.json
文件更改为以下内容:
{
"compilerOptions": {
"target": "es5",
"sourceMap": true,
"removeComments": true,
"noImplicitAny": true
}
}
问题解决了!
答案 1 :(得分:0)
就我而言,我根本没有tsconfig.json
!
使用默认值创建它可以解决问题。
答案 2 :(得分:0)
对我来说,如果我打开vscode指向应用程序的子目录(例如“ src”)而不是应用程序的根目录,我也会遇到这个确切的问题。也许是因为typescript.config位于根目录中,但是我不确定是否是这个原因。