如何编写X.Base.Descendant,其中X.Base既是类又是模块

时间:2013-09-19 09:04:12

标签: typescript

这是环境声明代码(我正在使用TypeScript 0.9.1.1):

// file Base.d.ts
declare module X
{
    export class Base
    {
    }
}

// file Descendant.d.ts
declare module X.Base
{
    export class Descendant extends Base
    {

    }
}

编译说:

  

类型引用不能引用容器'X.Base'

我只是通过将所有内容放入单个文件中的单个模块中找到了解决方法:

declare module X {
    export class Base {
    }

    export module Base {
        export class Descendant extends X.Base {

        }
    }
}

但是我想将这两个类保存在不同的文件中。这可能吗?

1 个答案:

答案 0 :(得分:0)

不幸的是它被暗示了:

// file Base.d.ts
declare module X
{
    export class Base
    {
    }
}

// file Descendant.d.ts
declare module X.Base
{
    // Starting at this point Base will always refer to 
    // module not the class
}

PS:对于你的单一文件解决方案,你很幸运。因为顺序似乎很重要(不应该是这种情况)。即以下是错误(在课前声明的模块):

declare module X {
    export module Base {
    }

    export class Base {
    }
}

提交错误报告:https://typescript.codeplex.com/workitem/1701