【问题标题】:TypeScript modules referencingTypeScript 模块引用
【发布时间】:2013-10-21 20:31:56
【问题描述】:

看看下面的 TypeScript 代码:

module events {
    export class Event {
    }
}

module display.events {
    export class DisplayEvent extends events.Event {
    }
}

基本上,这个想法是来自模块display.eventsDisplayEvent 类是来自模块eventsEvent 类的后代。然而,模块的命名存在问题,因此编译器搜索 Event 类是 display.events 模块:

error TS2094: The property 'Event' does not exist on value of type 'events'.

这里有什么方法可以让编译器(0.9.1.1 版)理解模块的结构吗?

【问题讨论】:

    标签: inheritance module compiler-errors typescript


    【解决方案1】:

    目前没有一种方法可以在不重组对象名称的情况下执行此操作。这基本上是一个运行时问题——变量是词法范围的,并且“事件”已被隐藏。

    【讨论】:

      【解决方案2】:

      为什么不将您的代码更改为如下所示(可行)?

      module display.events {
          export class Event {
          }
      }
      
      module display.events {
          export class DisplayEvent extends events.Event {
          }
      }
      

      【讨论】:

      • 因为我一般的Event类不属于display模块。它属于events 模块。正如 Ryan 所说,这是一个运行时问题,正如我在生成的 javascript 代码中看到的那样,名称“事件”已在 display 模块中隐藏。
      猜你喜欢
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      相关资源
      最近更新 更多