0

アンビエント宣言コードは次のとおりです (私は TypeScript 0.9.1.1 を使用しています)。

// file Base.d.ts
declare module X
{
    export class Base
    {
    }
}

// file Descendant.d.ts
declare module X.Base
{
    export class Descendant extends Base
    {

    }
}

コンパイラは次のように述べています。

型参照はコンテナ 'X.Base' を参照できません

すべてを単一のファイル内の単一のモジュールに入れることで、回避策を見つけただけです。

declare module X {
    export class Base {
    }

    export module Base {
        export class Descendant extends X.Base {

        }
    }
}

しかし、両方のクラスを別々のファイルに保存したいと思います。これは可能ですか?

4

1 に答える 1

0

残念ながら、それは影になります:

// file Base.d.ts
declare module X
{
    export class Base
    {
    }
}

// file Descendant.d.ts
declare module X.Base
{
    // Starting at this point Base will always refer to 
    // module not the class
}

PS: 単一ファイル ソリューションの場合、幸運でした。順序が重要であるように思われるため (これは当てはまりません)。つまり、以下はエラーです (クラスの前に宣言されたモジュール):

declare module X {
    export module Base {
    }

    export class Base {
    }
}

バグレポートを提出: https://typescript.codeplex.com/workitem/1701

于 2013-09-19T12:34:54.867 に答える