Aqui está um pequeno módulo externo que exporta explicitamente um módulo:
module Foo {
export var foo = 42;
}
export = Foo;
O código gerado para isso é:
define(["require", "exports"], function(require, exports) {
var Foo;
(function (Foo) {
Foo.foo = 42;
})(Foo || (Foo = {}));
return Foo;
});
Isso parece ruim para a AMD, já que você está exigindo a dependência mágica de "exportação", mas não a usa e, em vez disso, retorna Foo diretamente.
É irritante para os carregadores AMD mínimos, já que eles não podem assumir que o objeto de retorno do seu módulo é o seu objeto de "exportação" e têm que adivinhar que você realmente pretendia retornar algo que substituísse o objeto de "exportação" que você pediu.
Além disso, por que se preocupar em declarar uma dependência de 'require' quando não é usado?
Parece uma proposta razoável
Aprovado
SO pergunta que fiz sobre isso: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies
Isso já foi implementado? Eu preciso disso...
@amandaol as tags sobre o problema indicam que cabe à comunidade implementá-lo. Junto com o problema ainda aberto significa que ele não foi implementado.
Pelo que vale a pena, agora usamos amdextract
em nosso pipeline de construção após tsc
para remover o require
e exports
desnecessários do JS emitido.
Comentários muito úteis
SO pergunta que fiz sobre isso: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies