この件に関連する多数の StackOverflow の質問がありますが、私が試みているものとまったく同じではないか、以前のバージョンの TypeScript に関するものです。
私はかなり大きな TypeScript プロジェクトに取り組んでおり、特定のモジュールがクラスごとに 1 つではなく、複数のファイルに分割されています。
0.8.0 では、これはうまくいきました。
//* driver.ts *//
/// <reference path="express.d.ts"/>
/// <reference path="a.ts"/>
/// <reference path="b.ts"/>
.
//* a.ts *//
/// <reference path="driver.ts"/>
module m {
import express = module("express");
export class a {
A: m.b;
A2: express.ServerResponse;
}
}
.
//* b.ts *//
/// <reference path="driver.ts"/>
module m {
export class b {
B: number;
}
}
0.8.1 では、エクスポート インポートトリックでa.tsを変更する必要がありました。
//* a.ts *//
/// <reference path="driver.ts"/>
module m {
export import express = module("express");
export class a {
A: m.b;
A2: express.ServerResponse;
}
}
ただし、0.8.2 では、インポートをモジュール宣言内に含めることができなくなったため、a.tsは次のように変更されました。
//* a.ts *//
/// <reference path="driver.ts"/>
import express = module("express");
module m {
export class a {
A: m.b;
A2: express.ServerResponse;
}
}
a.tsはb.tsのモジュールの拡張子を認識しないため、エラーが発生します。
私が理解していること:
- import文により、 a.tsが外部モジュールになっています。
- a.tsのインポートを削除すると、a と b と私のモジュールをうまくマージできます。
- インポートを require ステートメントに変更すると、express.d.tsの型定義が失われます
わからないこと:
- すべてのモジュール ファイルを一緒にマージせずに、これを回避する方法は本当にありませんか?
これが他の場所で回答されている場合はお詫びします-そこにリンクしてください-しかし、他の同様の問題はどれもこれに明確に回答していないようです.