下面的代码
interface Foo {
}
declare var Foo: {
new() : Foo;
}
module Bar {
export interface Baz {
}
export declare var Baz: {
new() : Baz;
}
}
function f(p:Foo) {
}
//function b(p:Bar.Baz) {
//}
编译正常,但是如果我在最后两行中进行注释,tsc.exe 会生成“预期类型”-错误 似乎在作用域内声明 var 隐藏了接口(interface)声明。
有什么想法吗?
最佳答案
我想我明白你想要做什么,但可能是错的。
以下是创建与示例中的声明类似的声明的示例:
interface Foo {
}
declare var Foo: {
new() : Foo;
}
declare module Bar {
export interface Baz {
}
export class Baz {
new() : Baz;
}
}
function f(p:Foo) {
}
function b(p:Bar.Baz) {
}
我不建议在声明之外执行此操作 - 这就是我将模块转换为声明的原因。
关于typescript - var 声明隐藏模块内的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740729/