VS Code 中不一致的“找不到名称‘x’”打字稿错误
Posted
技术标签:
【中文标题】VS Code 中不一致的“找不到名称‘x’”打字稿错误【英文标题】:Inconsistent "Cannot find name 'x'" Typescript errors in VS Code 【发布时间】:2016-10-24 22:49:32 【问题描述】:我的应用编译(转译)很好,但 Visual Studio Code 仍然显示很多错误:
在某些情况下(例如angular
和ionic
),问题是无法识别通过我们包含 Angular/Ionic 添加的全局变量/命名空间。大多数错误的形式是“找不到名称'angular/ionic/ng”(等)。
更奇怪的是,我注意到在我加载 VS Code 时最初打开的文件根本没有任何错误。红色下划线的错误位于其他选项卡/编辑器的 other 文件中。
发生了什么事?如何让 VS Code 始终如一地承认这些全局变量/命名空间确实存在?
【问题讨论】:
【参考方案1】:在追逐这个问题的许多悲伤日子之后 - 我终于在 VS Code GitHub 上找到了一个 GitHub Issue,它解释了发生了什么。
tl;博士
我的tsconfig.json
文件配置不正确。为了解决这个问题,我删除了files
部分。您可能还需要在项目中删除它,或者只是“修复”它以包含所有相关的 .ts
文件。
加长版
添加文件 [部分] 将我们的项目限制为这两个文件,并且如果您打开这两个文件未引用的其他文件,那么它们最终会出现在一个独立的虚拟项目中。您要么需要省略 files 部分(然后 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
问题解决了!
【讨论】:
好的,太棒了!!!!!!!我有 filesGlob 和一个空的 files 数组。按照您的建议删除了 files 数组,重新启动 vscode 和瞧 !!!!!! 1,000,000 谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!! 没问题!我很高兴我持续的痛苦至少可以减轻你的痛苦! :) @MikeGraham 关于重启的部分很重要【参考方案2】:就我而言,我根本没有tsconfig.json
!
使用默认值创建它可以解决问题。
【讨论】:
【参考方案3】:对我来说,如果我打开指向应用程序子目录(如“src”)而不是应用程序根目录的 vscode,我也会遇到这个问题。也许这是因为 typescript.config 在根目录中,但我不确定是不是这个原因。
【讨论】:
以上是关于VS Code 中不一致的“找不到名称‘x’”打字稿错误的主要内容,如果未能解决你的问题,请参考以下文章
无法在 VS Code 中调试当前的打字稿文件,因为找不到相应的 JavaScript
如何让 VS Code 智能感知在多个 node_modules 文件夹中搜索打字稿