Javascript 奇怪的typescript错误:";当前作用域中不存在名称g;
突然,我的代码没有编译,tsc抱怨“名称g在当前范围内不存在”。这是一个非常有趣的错误:Javascript 奇怪的typescript错误:";当前作用域中不存在名称g;,javascript,node.js,compiler-construction,web,typescript,Javascript,Node.js,Compiler Construction,Web,Typescript,突然,我的代码没有编译,tsc抱怨“名称g在当前范围内不存在”。这是一个非常有趣的错误: 我的代码中没有一个变量、类或接口名为“g” 我没有导入名为“g”的模块 文件本身未命名为“g” 下面是一些代码: export class SpawnMessage implements Message { tag: UID; id: number; } VisualStudio以红色强调“导出”的“e”,并抱怨“没有名称g”。同样的错误消息散布在我的代码中最奇怪的地方 好吧,我想如果
- 我的代码中没有一个变量、类或接口名为“g”
- 我没有导入名为“g”的模块
- 文件本身未命名为“g”
export class SpawnMessage implements Message {
tag: UID;
id: number;
}
VisualStudio以红色强调“导出”的“e”,并抱怨“没有名称g”。同样的错误消息散布在我的代码中最奇怪的地方
好吧,我想如果g是如此重要,我会创造它。我在代码顶部添加了一个名为g的变量。错误消息没有消失,只是移动了。例如,现在我的一个评论显然是错误的。真的,如果有人告诉我,我不会相信,所以我做了一个截图:
![g不存在][1]
不仅仅是VisualStudio,还有tsc。我重新启动了IDE和shell,但错误仍然存在。自然,它又换了位置
出了什么问题
更新:
我修复了export-import语句,但这并不影响错误。
这是JSFIDLE上的整个文件。代码相当难看,请记住这是正在进行的工作。事实上,当错误出现时,我正在重构,从那以后就再也没有接触过该文件
目前,在以下三个地方发现了错误:
消息
界面的右大括号SpawnMessage
游戏中方法requestSpawn
返回语句前面的一些空格
我不会把这篇文章作为我自己问题的答案,因为它确实不令人满意。如果你们中有人能解释这种奇怪的行为,也许这是一个已知的错误,我会很乐意接受他的回答。我相信我以前曾多次遇到过这种错误。当它谈到“g”或“b”时,它指的是它为类维护的内部原型继承链。对我来说,当基类
Message
在代码流中的子SpawnMessage
之后定义时,会发生此错误或类似的情况。只需首先定义基类
希望能有所帮助。我很惊讶,原来的
导出导入
语句没有被捕获,这应该突出显示。您使用的是哪个版本的TS,哪个版本(如果有)的WebEssentials 2012,我们可以看到出现问题的整个类吗?TS的alpha问题之一是,它有时会发现错误,但会错误地报告为其他错误。当然,您可以看到整个代码。但是错误并不局限于一个类。每次编辑后我都会改变位置,基本上到处都会发生。我将创建一个jfiddle来处理整个文件修复导出导入无法解决问题问题是您没有提供我们可以重新创建的示例,因此我们无法帮助您。您需要创建一个最小的示例来演示这个问题,因为只需将代码的一部分扔到墙上,我们甚至不希望编译它,因为缺少引用,这意味着我们无法重新创建您的问题。我为您的示例中所有缺失的代码创建了定义,但我没有得到您描述的错误。考虑到这一点,您的问题在当前形式下无法回答。在第一行末尾添加分号是否可以解决您的问题?