【问题标题】:How to import angular.IInjectorService using the ES6 module syntax in TypeScript如何在 TypeScript 中使用 ES6 模块语法导入 angular.IInjectorService
【发布时间】:2015-07-27 21:42:55
【问题描述】:

如何使用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) {...}
}

【问题讨论】:

    标签: angularjs typescript typescript1.5


    【解决方案1】:

    它在auto 模块下,输入为IInjectorService

    你可以这样使用它:

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

    【讨论】:

      【解决方案2】:

      以下将起作用:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-06
      • 2015-08-13
      • 2018-02-06
      • 1970-01-01
      • 2016-07-14
      • 2018-03-08
      • 1970-01-01
      • 2021-11-18
      相关资源
      最近更新 更多