Angularjs 如何在TypeScript中使用ES6模块语法导入angular.IInjectorService
如何使用中的ES6模块语法从文件导入angular.IInjectorService 编辑:我真正想知道的是如何使用Angularjs 如何在TypeScript中使用ES6模块语法导入angular.IInjectorService,angularjs,typescript,typescript1.5,Angularjs,Typescript,Typescript1.5,如何使用中的ES6模块语法从文件导入angular.IInjectorService 编辑:我真正想知道的是如何使用IInjectorService,而不完全限定它。换句话说,我想这样做: class TestCtrl { constructor($injector: IInjectorService) {...} } 与此相反: class TestCtrl { constructor($injector: ng.auto.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) {...}
}
class TestCtrl {
myReference: any;
constructor($injector: ng.auto.IInjectorService){
myReference = $injector.get('name');
}
}
它位于
auto
模块下,将被键入IInjectorService
您可以这样使用它:
///<reference path="../path/to/typeDefinitions/angularjs/angular" />
import IInjectorService = ng.auto.IInjectorService;
class TestCtrl {
constructor($injector: IInjectorService) {...}
}
class TestCtrl {
myReference: any;
constructor($injector: ng.auto.IInjectorService){
myReference = $injector.get('name');
}
}
以下工作将起作用:
import {auto as ngAuto} from "angular";
var foo:ngAuto.IInjectorService;
然而,我想说的是,
auto
是一个糟糕的决定(但是,I
前缀也是如此)。当angular定义被编写时,TypeScript是新的,由于angular的流行,我们还没有机会将其重构为更好的版本。请我和其他开发人员注意:确保包含参考/
。如果IDE支持tsconfig.json,它将无法工作: