我正在项目中使用typescript和angular。当我想公开服务的方法时,我会执行以下操作:
export class MyService implements IService {
//Public method
public myMethod: Function;
public constructor() {
this.myMethod= this._myMethod;
}
private _myMethod(): void {
//...
}
当我处理获得许多方法的服务时,我不必滚动查看方法的定义,这样很好。但是现在当我在另一个服务或控制器中使用我的服务方法时,我看不到我方法的签名......所以我放弃了打字稿的优点......
有什么想法吗?
感谢。
答案 0 :(得分:1)
简单的答案是你需要给你的函数定义一个签名
class MyService {
public myMethod: () => void; //don't use Function
constructor() {
this.myMethod = this.myMethod;
}
_myMethod = () => {
}
}
然而,更好的方法是定义一个接口:
interface IMyService extends IService {
myMethod: () => void;
}
class MyService implements IMyService {
constructor() {
}
myMethod = () => {
}
}