【发布时间】:2020-02-16 03:09:42
【问题描述】:
我正在使用universalify 生成一个函数,该函数默认返回一个承诺,但也支持回调作为最后一个参数(这样就不会返回一个承诺)。我将如何编写正确的 Typescript 类型来在我的 index.d.ts 文件中描述这一点?
目前,我不得不以函数重载的形式复制我的函数类型以支持承诺:
declare function someFunc(opts): Promise<any>
declare function someFunc(opts: object, callback: (error: Error | null, result: any | void) => any): void
当我在大型项目中使用此术语时,当我不得不通过输入两次或三次来重命名时,它会增加很大的开发负担。
实现这一目标的传统方法是什么?
【问题讨论】:
-
你的 IDE 不能帮你重命名吗?
-
@Bergi 确实如此,但这只是逃避问题。
-
我认为没有问题。如果你想提供一个带有回调的重载,很自然地必须重复函数名。
标签: javascript typescript