Búsqueda de sitios web

angularjs - Cómo importar angular.IInjectorService usando la sintaxis de módulos ES6 en TypeScript


¿Cómo importo angular.IInjectorService desde el archivo angular.d.ts usando la sintaxis de módulo ES6 en TypeScript?

EDITAR: Lo que realmente me gustaría saber es cómo puedo usar el IInjectorService sin calificarlo completamente. En otras palabras, quiero hacer esto:

class TestCtrl {
    constructor($injector: IInjectorService) {...}
}

En lugar de esto:

class TestCtrl {
    constructor($injector: ng.auto.IInjectorService) {...}
}

Actualmente, lo estoy haciendo de la manera del módulo interno. Algo así:

///<reference path="../path/to/typeDefinitions/angularjs/angular" />

import IInjectorService = ng.auto.IInjectorService;

class TestCtrl {
    constructor($injector: IInjectorService) {...}
}

Mi pregunta es, ¿hay una forma en ES6 de lograr esto? Por ejemplo, algo como el siguiente pseudocódigo:

import {IInjectorService} from '../path/to/typeDefinitions/angularjs/angular';

class TestCtrl {
    constructor($injector: IInjectorService) {...}
}

Respuesta #1

Lo siguiente funcionará:

import {auto as ngAuto} from "angular";
var foo:ngAuto.IInjectorService;

Sin embargo, me gustaría decir que auto fue una mala decisión (pero, por otro lado, también lo fue el prefijo I). TypeScript era nuevo cuando se escribieron las definiciones de Angular y debido a la popularidad de Angular, no hemos tenido la oportunidad de refactorizarlo en una mejor versión.

Respuesta #2

Está bajo el módulo auto y se escribirá como IInjectorService

Puedes usarlo así:

class TestCtrl {
  myReference: any;
  constructor($injector: ng.auto.IInjectorService){
    myReference = $injector.get('name');
  }
}

Artículos relacionados