【发布时间】:2015-02-05 10:01:55
【问题描述】:
我在一个项目中使用 typescript 和 angular。当我想公开服务的方法时,我会执行以下操作:
export class MyService implements IService {
//Public method
public myMethod: Function;
public constructor() {
this.myMethod= this._myMethod;
}
private _myMethod(): void {
//...
}
当我处理获得许多方法的服务时,我不必滚动查看方法的定义,这很棒。但是现在当我在另一个服务或控制器中使用我的服务的方法时,我看不到我的方法的签名......所以我失去了打字稿的优势......
有什么想法吗?
谢谢。
【问题讨论】:
-
1.
IService接口中是否列出了这些方法? 2.你是否声明控制器中的注入服务为IService类型? -
不,目前我没有使用 IService。
-
这就是您看不到签名/智能感知的原因。您需要在控制器中的 DI 声明中指定您的服务属于您所说的类型。
-
含义
function (myService: IService) {...}
标签: javascript angularjs typescript encapsulation