0

这是环境声明代码(我使用的是 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 {

        }
    }
}

我想将这两个类保存在单独的文件中。这可能吗?

4

1 回答 1

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

于 2013-09-19T12:34:54.867 回答