2016-10-10 29 views
0

我正在将一个angular1项目从javascript迁移到typescript,并且想要添加到overloaded $injector.get method以包含项目自己的注入类型。我在合并界面上阅读this typescript doc。我加入导入d.ts文件这样的:

import TrendDisplayService from 'services/TrendDisplayService'; 
declare namespace angular { 
    export module ng.auto { 
     export interface IInjectorService { 
     get(name: 'trendDisplayService'): TrendDisplayService 
     } 
    } 

} 

但是我做了以下时,我仍然看到了“不可转让”类型的错误:

let trend:TrendDisplayService = $injector.get('trendDisplayService'); 

有什么想法?

回答

1

在声明模块中应该是auto而不是ng.auto。

declare namespace angular { 
    export module auto { 
     export interface IInjectorService { 
      get(name: 'trendDisplayService'): TrendDisplayService 
     } 
    } 
} 
+0

呃感谢您的纠正。不幸的是,这仍然在我的项目中不起作用,但我强烈怀疑它是由于一些tsconfig问题引起的......如果我将更正后的代码片段直接放在我正在执行的文件中,应该这样工作:let trend:TrendDisplayService = $ injector.get( 'trendDisplayService');'?或者这是不允许的? – AndyPerlitch

+0

是的,这将起作用。你可以把它放在你的项目的任何地方。 –

相关问题