Typereference不能引用容器

时间:2013-11-25 13:31:18

标签: compiler-errors typescript

我在编译过程中遇到错误,我不明白。

declare module M {
    export interface A {
        value1: string;
    }
}

declare module M.A {
    export interface B {
        value2: string;
    }
}

declare module D {
    export interface E {
        test1: M.A[]; // works
        test2: M.A; // error TS4022 : type reference cannot refer to container 'M.A'
        test3: {[key: number] : M.A}; // same error
    }
}

我想在我的程序中使用M.A和M.A.B接口。有可能吗?

$tsc --version
Version 0.9.1.1

2 个答案:

答案 0 :(得分:2)

您对规范的阅读是正确的;这是0.9.1.1编译器中的一个错误。代码在0.9.5.0测试版(see here

中编译时没有错误

答案 1 :(得分:1)

我有raised a bug on Codeplex这个问题。

语言规范中的示例在TypeScript playground中失败:

module X {
    export module Y {
        export interface Z { 

        }
    }
    export interface Y { 

    }
}

var z: X.Y.Z; // error!