Grundlegendes zu internen / externen Modulen und zum Import / Erfordernis von Typescript 0.8.2

Es gibt zahlreiche StackOverflow-Fragen, die sich mit diesem Thema befassen, aber entweder nicht ganz mit dem übereinstimmen, was ich versuche, oder für frühere Versionen von TypeScript.

Ich arbeite an einem ziemlich großen TypeScript-Projekt und habe ein bestimmtes Modul in mehrere Dateien aufgeteilt, nicht ganz eines pro Klasse.

In 0.8.0 hat dies gut funktioniert:

//* 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;
  }
}

In 0.8.1 musste ich mich änderna.ts mit demExport Import Trick:

//* a.ts *//
/// <reference path="driver.ts"/>
module m {
  export import express = module("express");

  export class a {
    A: m.b;
    A2: express.ServerResponse;
  }
}

In 0.8.2 können Importe jedoch nicht mehr innerhalb der Moduldeklaration liegen, soa.ts hat sich geändert in:

//* a.ts *//
/// <reference path="driver.ts"/>
import express = module("express");
module m {

  export class a {
    A: m.b;
    A2: express.ServerResponse;
  }
}

das gibt jetzt einen fehler daa.ts sieht die erweiterung des moduls nicht inb.ts.

Was ich verstehe:

a.ts ist aufgrund der import-Anweisung zu einem externen Modul geworden.Entfernen des Imports ina.ts erlaubt a und b und mein Modul zusammen zu verschmelzen.Wenn Sie den Import in eine require-Anweisung ändern, gehen die Typdefinitionen in verlorenexpress.d.ts

Was ich nicht verstehe:

Kann ich das wirklich nicht umgehen, ohne alle meine Moduldateien zusammenzuführen?

Ich entschuldige mich, wenn dies an anderer Stelle beantwortet wird - verlinken Sie mich einfach dort -, aber keines der anderen ähnlichen Probleme scheint dies definitiv zu beantworten.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage