angularjs - Angular + TypeScript + AMD=¿duplicación?
He estado desarrollando en Angular durante unos meses y ahora estoy investigando si vale la pena pasar a TypeScript para mi desarrollo. Uno de los problemas que tengo es la duplicación al usar módulos externos e inyectar servicios. Por ejemplo, tengo este código (simplificado):
///<reference path="../../../../typings/tsd.d.ts" />
// imports for strong typing
import audioModel = require('app/plugins/audio/audio.model');
export class AudioController {
public model: audioModel;
static $inject = ['$scope', '$q', 'AudioModel'];
constructor(protected $scope, protected $q, protected AudioModel:audioModel) {
this.model = new AudioModel();
}
}
El AudioModel es una fábrica de Angular definida en el módulo externo 'audio.model.ts', así que me parece que lo estoy inyectando dos veces: una usando Angular y otra usando la importación de TypeScript para obtener tipado fuerte.
¿Existe una mejor manera de usar tanto la inyección de dependencias de Angular como la tipificación estricta en un proyecto AMD?
Respuesta #1
¿Hay una mejor manera de usar la inyección de dependencias de Angular y la tipificación fuerte en un proyecto AMD?
Este fue un problema con la inyección de dependencias de Angular 1.x. El sistema de módulos de Angular era independiente de los sistemas de módulos tradicionales del navegador existentes (p. ej., AMD).
Así que sí necesitas importarlo dos veces. Una vez el Tipo, luego el DI.