2013-10-21 651 views
0

看一看下面的打字稿代码:打字稿模块引用

module events { 
    export class Event { 
    } 
} 

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

基本上,这个想法是,从模块display.eventsDisplayEvent类是Event类的从模块events后裔。然而有与模块从而为Event类编译器搜索的命名问题是display.events模块:

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

在这里没有办法让编译器(版本0.9.1.1)了解模块的结构?

回答

2

目前没有一种方法可以在不重构对象名称的情况下做到这一点。这基本上是一个运行时问题 - 变量在词汇范围内,'事件'已被遮蔽。

1

为什么不改变你的代码看起来像这样(工作)?

module display.events { 
    export class Event { 
    } 
} 

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

因为我一般的'Event'类不属于'display'模块。它属于'events'模块。正如Ryan所说,这是一个运行时问题,正如我在结果javascript代码中看到的,'events'这个名字已经隐藏在display模块中。 – MalcomCZ