2

次のコード

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) {
//}

正常にコンパイルされますが、最後の 2 行でコメントすると、tsc.exe は "Expected type"-Error を生成します。スコープ内で var を宣言すると、インターフェイス宣言が隠されているようです。

何か案は?

4

1 に答える 1

2

私はあなたがやろうとしていることを理解していると思いますが、間違っているかもしれません.

例のような宣言を作成する例を次に示します。

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) {
}

これを宣言の外で行うことはお勧めしません。そのため、モジュールを宣言に変換しました。

于 2012-12-06T15:34:12.630 に答える