【问题标题】:Webstorm shows unresolved variable when Typescript has no issues当 Typescript 没有问题时,Webstorm 显示未解析的变量
【发布时间】:2013-11-19 11:23:39
【问题描述】:

我正在使用带有 tsc 0.9.1.1 的 WebStorm 7.0.2。 Webstorm 将代码显示为红色,当我将鼠标移到下面的红色文本 ISystem 上时,工具提示中会显示许多错误。

/// <reference path="launcher-system.ts" />
module Launcher {
  export class SystemStub implements Launcher.ISystem { // ISystem shows as red
  ....
  }
...
}

launcher-system.ts有以下内容:

module Launcher {
  export interface ISystem {
  ...
  }
}

但是 tsc 没有错误输出。而且,我可以点击ISystem 的红色文本,Webstorm 会将我带到另一个文件中定义Launcher.ISystem 的位置。

工具提示显示四个未解决的变量错误。

  • 未解析的变量 ISystem
  • 未解析的变量 ISystemm
  • 未解析的变量 ISystemmm
  • 未解析的变量 ISystemmmm

大量错误是由于我想看看如果我通过尝试实现一个我知道不存在的接口故意导致错误会发生什么(例如,我确定 ISystemmmm 不是有效的)。

我不知道为什么 Webstorm 似乎保留了错误历史。但是,虽然我知道拼写错误是有效错误,但它们已成为历史……为什么 Webstorm 仍然显示这些错误?

而且,我怎样才能修复 Webstorm 的一个错误消息,它不是一个有效的错误(例如 ISystem)?

【问题讨论】:

  • 令人困惑:其中三个是有效错误,因为我正在测试当我输入故意错误时会发生什么,
  • @basarat 我在我的帖子中添加了更多细节,因为它令人困惑。
  • 相同的代码对我来说没有任何错误(WebStorm 7.0.2)。您的代码中必须有其他原因导致问题(或者这是一个“损坏的缓存”问题)。如果无效缓存(文件/无效缓存)没有帮助,您能否附上一个演示该问题的示例项目?

标签: typescript webstorm


【解决方案1】:

我不得不做出一些假设,因为您没有展示该问题的完整工作示例。

我的猜测是您可能错过了界面中的export 关键字?如果省略 export 关键字,ISystem 将不会存在于 Launcher

第一个文件

module Launcher {
    export interface ISystem {

    }
}

第二个文件

module Launcher {
      export class SystemStub implements Launcher.ISystem {

      }
}

【讨论】:

  • ISystem 确实有一个导出,正如您在上面的第一个文件中显示的那样。你上面的两个代码块正是我已经拥有的。
  • 在这种情况下,WebStorm 中似乎存在一个错误,因为这是有效的 TypeScript。你应该可以在 YouTrack 上提出它:youtrack.jetbrains.com/issues?q=%23TypeScript+%23{WebStorm+%2F+IntelliJ+Web}
  • 多么典型……我尝试创建一个简单的测试用例来将“错误”提交给 Jetbrains,而 WebStorm 没有显示任何错误。这一定是我做过的其他事情,因为您在上面描述的简单案例可以正常工作。
猜你喜欢
  • 2016-09-25
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多