Понимание внутренних / внешних модулей и импорт / требует Typescript 0.8.2
Существует множество вопросов StackOverflow, которые касаются этой темы, но они не совсем совпадают с тем, что я пытаюсь сделать, или относятся к предыдущим версиям TypeScript.
Я работаю над довольно большим проектом TypeScript, и данный модуль разбит по нескольким файлам, а не по одному на класс.
В 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.
Что я понимаю:
a.ts стал внешним модулем из-за оператора импорта.удаление импорта вa.ts позволяет a и b и мой модуль прекрасно слиться воедино.изменение импорта на оператор require теряет определения типа вexpress.d.tsЧто я не понимаю
Неужели я не могу обойти это без объединения всех файлов моего модуля?Я прошу прощения, если на этот вопрос ответили в другом месте - просто свяжите меня там - но ни один из других подобных вопросов, кажется, не дает окончательного ответа.