如何使用TypeScript中的ES6模块语法导入angular.IInjectorService

时间:2015-05-15 20:44:14

标签: angularjs typescript typescript1.5

如何使用angular.d.ts中的ES6模块语法从TypeScript文件导入angular.IInjectorService?

编辑:我真正想知道的是如何在没有完全符合条件的情况下使用IInjectorService。换句话说,我想这样做:

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

而不是:

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

目前,我正在以内部模块方式进行。像这样:

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

import IInjectorService = ng.auto.IInjectorService;

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

我的问题是,有没有ES6方法来实现这一目标?例如,类似于以下伪代码:

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

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

2 个答案:

答案 0 :(得分:1)

它位于auto模块下,输入为IInjectorService

你可以像这样使用它:

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

答案 1 :(得分:1)

以下内容可行:

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

但是我想说auto是一个糟糕的决定(但是I前缀也是如此)。当角度定义被写入时,TypeScript是新的,并且由于角度的普及,我们没有机会将其重构为更好的角色。