我有以下代码:
class A {
constructor(public n: number) {}
defaultFn(a: number): number {
return a + 1;
}
doStuff(callback?): number {
return callback ? callback(this.n) : this.defaultFn(this.n);
}
}
Run Code Online (Sandbox Code Playgroud)
如何告诉TypeScript callback传递给doStuff方法的可选函数应该与方法具有相同的签名defaultFn?
interface Callback {
(n:number):number;
}
class A {
constructor(public n: number) { }
public readonly defaultFn: Callback = (a: number): number => {
return a + 1;
}
public doStuff(callback?: Callback): number {
return callback ? callback(this.n) : this.defaultFn(this.n);
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以简单地做到这一点
doStuff(callback?: (n:number)=>number): number {
return callback ? callback(this.n) : this.defaultFn(this.n);
}
Run Code Online (Sandbox Code Playgroud)
或与界面结合
interface Callback {
(n:number):number;
}
doStuff(callback?: Callback): number {
return callback ? callback(this.n) : this.defaultFn(this.n);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1295 次 |
| 最近记录: |