Entendendo módulos internos / externos e importando / exigindo o Typescript 0.8.2
Existem inúmeras perguntas sobre o StackOverflow que tocam neste assunto, mas não são exatamente as mesmas que estou tentando, ou são para versões anteriores do TypeScript.
Eu estou trabalhando em um projeto TypeScript bastante grande, e tenho um determinado módulo dividido em vários arquivos, não exatamente um por classe.
No 0.8.0, isso funcionou bem:
//* 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;
}
}
Em 0.8.1, eu tive que mudara.ts com oexportar importar truque:
//* a.ts *//
/// <reference path="driver.ts"/>
module m {
export import express = module("express");
export class a {
A: m.b;
A2: express.ServerResponse;
}
}
No 0.8.2, no entanto, as importações não podem mais estar dentro da declaração do módulo, portantoa.ts mudou para:
//* a.ts *//
/// <reference path="driver.ts"/>
import express = module("express");
module m {
export class a {
A: m.b;
A2: express.ServerResponse;
}
}
que agora dá um erro porquea.ts não vê a extensão do módulo emb.ts.
O que eu entendo:
a.ts tornou-se um módulo externo, devido à declaração de importação.removendo a importação ema.ts permite ae be meu módulo mesclar bem.mudar a importação para uma instrução require perde as definições de tipo emexpress.d.tsO que eu não entendo:
Existe realmente nenhuma maneira de eu contornar isso sem mesclar todos os meus arquivos de módulo juntos?Peço desculpas se isso for respondido em outro lugar - apenas me ligue lá - mas nenhuma das outras questões semelhantes parece responder isso definitivamente.