これが私のシナリオです。複数のファイルにまたがるモジュール「mine」を定義しています。参照パス インクルードを使用してファイルをインクルードします。ただし、ファイルの 1 つでインポートを使用すると、内部モジュール内の名前が解決されなくなります。モジュール名を明示的に参照する必要があります..
a.ts:
module mine {
export class A {
}
}
e.ts: (私はこれを所有していません。通常は Web からダウンロードします)
declare module "ext" {
export var xyz;
};
b.ts:
/// <reference path="a.ts" />
/// <reference path="e.ts" />
import ext = module("ext");
module mine {
export class B extends A {
}
}
「tsc --target ES5 b.ts」を使用して b.ts をコンパイルすると、次のエラーが発生します。
E:/Prem/src/redsnake/try/b.ts(5,27): Expected type
E:/Prem/src/redsnake/try/b.ts(5,27): Base type must be interface or class
ただし、b.ts のインポート ステートメントを削除すると、すべて正常に動作します。私の質問は、別の外部モジュールをインポートしながら内部モジュールを拡張するにはどうすればよいかということです。
説明のために e.ts を追加しましたが、技術的には、tsd を介して取得するか、Web からダウンロードした外部の typescript 定義ファイルから e.ts を取得できます。私が特に直面している問題は、node.js assert モジュールにあります。