2

如何使用TypeScript中的 ES6 模块语法从angular.d.ts文件中导入 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) {...}
}
4

2 回答 2

2

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

你可以像这样使用它:

class TestCtrl {
  myReference: any;
  constructor($injector: ng.auto.IInjectorService){
    myReference = $injector.get('name');
  }
}
于 2015-05-18T18:40:08.990 回答
1

以下将起作用:

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

但是我想说这auto是一个糟糕的决定(但I前缀也是如此)。TypeScript 在编写 Angular 定义时是新的,由于 Angular 的流行,我们没有机会将其重构为更好的。

于 2015-05-18T23:28:05.497 回答