我正在将我们的TypeScript项目移动到0.9.5,我不知道如何处理其中一个重大变化。
我有一个模式,其中一个函数可以将另一个函数作为输入。我不想对该输入函数的参数设置任何约束,但我确实想约束返回类型。我这样做了:
declare function meta(input: (... args: any[]) => boolean): void;
meta(function (x: number, y: number): boolean {
return true;
});
meta(function (a: string): boolean {
return false;
});
但这不再起作用了。我想出的最好的替代品是:
declare function meta(input: (x: any, y: any, z: any) => boolean): void;
meta(function (x: number, y: number): boolean {
return true;
});
meta(function (a: string): boolean {
return false;
});
这非常难看,它只能在input
上包含我想要的参数。这只是感觉不对。有没有更好的方法来输入我的功能?
答案 0 :(得分:2)
breaking changes page的建议更改如下......
declare function meta(input: (...args: any[]) => boolean): void;
meta(function (x?: number, y?: number): boolean {
return true;
});
meta(function (a?: string): boolean {
return false;
});