我在编译过程中遇到错误,我不明白。
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
答案 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!