我有一个这样的打字稿类;
module my.services {
export class MyService {
...
}
}
另一个像这样;
module com.my.component {
import MyService = my.services.MyService;
export class MyComponent {
...
}
}
但是在第二节课中我收到了一个打字稿错误
Module 'com.my' has no exported member 'services'
在这种情况下引用MyService的正确方法是什么?
答案 0 :(得分:0)
如果我们在这里查看关于命名空间的说明,例如'A.B.C':namespace declarations,很容易看出为什么会出现错误。您的'com.my.component'命名空间声明是有效的:
namespace com
{
export namespace my
{
export namespace component
{
import MyService = my.services.MyService;
export class MyComponent extends MyService
{
}
}
}
}
因此,任何尝试在'my'声明中引用以'my ....'开头的任何内容都会尝试在当前'com.my'命名空间内搜索它。
要解决此问题,您可以在“my”命名空间声明之外移动导入:
import MyService = my.services.MyService;
namespace com
{
export namespace my
{
export namespace component
{
export class MyComponent extends MyService
{
}
}
}
}
或者在较短的版本中:
import MyService = my.services.MyService;
module com.my.component
{
export class MyComponent extends MyService
{
}
}