Jest DoneCallback 数据类型的理解
2021-10-29 本文已影响0人
华山令狐冲
我在学习 jest 框架的 beforeEach 方法时,注意到其接受的输入参数 fn 的类型为 jest.ProvidesCallback:

该参数的类型 ProvidesCallback,本身是一个函数,返回任意类型,该函数的输入参数为 DoneCallback:
type ProvidesCallback = (cb: DoneCallback) => any;
DoneCallback 的定义如下:
interface DoneCallback {
(...args: any[]): any;
fail(error?: string | { message: string }): any;
}
DoneCallback 本身是一个函数,接收任意类型,任意数量的参数,返回任意类型:
(...args: any[]): any;
同时,该类型还包括一个 fail 字段,该字段也指向一个函数,输入参数为 string.
如果定义一个类型为 DoneCallback 的变量?参考如下代码:

interface DoneCallback {
(...args: any[]): any;
fail?(error?: string | { message: string }): any;
}
var a: DoneCallback = (error) => error;
a.fail = (error) => error;
console.log(a(1));
console.log(a.fail('Jerry'));
更多Jerry的原创文章,尽在:"汪子熙":
