Typescript: Los módulos externos con AMD siempre requieren "exportaciones" incluso cuando no se utilizan

Creado en 13 sept. 2014  ·  6Comentarios  ·  Fuente: microsoft/TypeScript

Aquí hay un pequeño módulo externo que exporta explícitamente un módulo:

module Foo {
    export var foo = 42;
}
export = Foo;

El código generado para esto es:

define(["require", "exports"], function(require, exports) {
    var Foo;
    (function (Foo) {
        Foo.foo = 42;
    })(Foo || (Foo = {}));

    return Foo;
});

Esto se siente como una mala AMD ya que está requiriendo la dependencia mágica de "exportaciones", pero luego no la usa y en su lugar devuelve Foo directamente.

Es molesto para los cargadores AMD mínimos, ya que no pueden asumir que el objeto devuelto por su módulo es su objeto de "exportaciones" y tienen que adivinar que realmente pretendía devolver algo que anuló el objeto de "exportaciones" que solicitó.

Además, ¿por qué molestarse en declarar una dependencia en 'require' cuando no se usa?

Suggestion help wanted

Comentario más útil

Todos 6 comentarios

Parece una propuesta razonable

Aprobado

¿Esto ya se ha implementado? Lo necesito...

@amandaol las etiquetas sobre el problema indican que depende de la comunidad implementarlo. Junto con el problema que aún está abierto, significa que no se ha implementado.

Por lo que vale, ahora usamos amdextract en nuestra canalización de compilación después de tsc para eliminar los require y exports innecesarios del JS emitido.

https://github.com/mehdishojaei/amdextract

¿Fue útil esta página
0 / 5 - 0 calificaciones