Typescript + Angular 公开服务方法
Typescript + Angular expose service method
我在项目中使用 typescript 和 angular。当我想公开服务的方法时,我会执行以下操作:
export class MyService implements IService {
//Public method
public myMethod: Function;
public constructor() {
this.myMethod= this._myMethod;
}
private _myMethod(): void {
//...
}
当我处理获得许多方法的服务时,我不必滚动查看方法的定义,这太棒了。但是现在当我在另一个服务或控制器中使用我的服务方法时,我看不到我的方法的签名......所以我失去了打字稿的优势......
有什么想法吗?
谢谢。
简单的答案是您需要给函数定义一个签名
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 = () => {
}
}
我在项目中使用 typescript 和 angular。当我想公开服务的方法时,我会执行以下操作:
export class MyService implements IService {
//Public method
public myMethod: Function;
public constructor() {
this.myMethod= this._myMethod;
}
private _myMethod(): void {
//...
}
当我处理获得许多方法的服务时,我不必滚动查看方法的定义,这太棒了。但是现在当我在另一个服务或控制器中使用我的服务方法时,我看不到我的方法的签名......所以我失去了打字稿的优势......
有什么想法吗?
谢谢。
简单的答案是您需要给函数定义一个签名
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 = () => {
}
}