microsoft / microsoft/TypeScript
External modules with AMD always requires "exports" even when it is not used
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
Here's a small external module that explicitly exports a module:
module Foo {
export var foo = 42;
}
export = Foo;
The code generated for this is:
define(["require", "exports"], function(require, exports) {
var Foo;
(function (Foo) {
Foo.foo = 42;
})(Foo || (Foo = {}));
return Foo;
});
This feels like bad AMD since you are requiring the "exports" magic dependency, but then not using it and instead returning Foo directly.
It's annoying for minimal AMD loaders since they can't assume the object return of your module is your "exports" object and have to guess that you really meant to return something that overrode the "exports" object you asked for.
Furthermore, why bother declaring a dependency on 'require' when it's not used?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza reproduciendo el problema a partir del ejemplo de TypeScript y comparando la salida AMD generada. Inspecciona la ruta de emisión del compilador para AMD external-module y sus pruebas de regresión, si existen. Se considera completado cuando no se emiten las dependencias "require" y "exports" no utilizadas, mientras el valor del módulo devuelto sigue siendo correcto.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, typescript
- Área
- compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100