typescript - var 声明隐藏模块内的接口(interface)

标签 typescript

下面的代码

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/

相关文章:

Javascript 传播运算符替代

html - 当 ngIf 为 false 时构建 Angular4 ng-content

typescript - tslint:不允许命名空间和模块

node.js - 编译时 tsc 忽略 index.d.ts 类型定义

typescript - 推断元组类型而不是联合类型

typescript - 如何检查字符串是否仅包含空格或在 TypeScript 中为空?

reactjs - typescript 错误不允许作为变量声明 name.ts

css - 如何在子组件中访问父组件类

node.js - 使用 util.promisify 模拟 bluebird.promisifyAll

javascript - 构建期间发生 react 、redux 和 typescript 错误