Ich habe ein ziemlich ernstes Problem. Ich versuche Schritte in Richtung ES6-Importe und TypeScript in meiner Angular 1-Anwendung zu machen. Aber mit eckiger Injektion gehen viele ES6-Importe ungenutzt weiter. Hier ein Beispiel:SystemJs und ES6 Importe für Angular Services
Service-
export class MyService {
public doStuff() {}
}
Controller-
import {MyService} from './service';
export class MyController {
public constructor(private MyService: MyService) {MyService.doStuff();}
}
Hinweis es spielt keine Rolle, ob ich den Import mit as
umbenennen.
Das Problem hier ist, dass der Compiler nicht denkt, dass der MyService
Import verwendet wird! So die kompilierte resultierende systemjs
Code nicht enthalten it-
System.register('myController', [], function() { ... });
Um dies zu umgehen ich die Methoden auf MyService
statisch machen könnte und es nie Winkel mit injizieren. Ex:
import {MyService} from './service';
export class MyController {
public constructor() {MyService.doStuff();}
}
Aber wir haben nicht die Zeit, das zu tun. Wir versuchen, diesen Refactor schrittweise zu erstellen, und obwohl das das ultimative Ziel ist, haben wir dafür momentan keine Zeit.
Wie erzwinge ich systemjs
, um diese einzuschließen?