我正在尝试为 async-busboy 添加一个异步函数定义;
我创建了一个文件“async-busboy.d.ts”
declare module 'async-busboy' {
export default async function asyncBusby
(subString: any): Promise<any>;
}
但这给了我错误:“错误 TS1040:'async' 修饰符不能在环境上下文中使用。”
我如何编写异步函数定义?
谢谢
编辑
感谢 @Titian Cernicova-Dragomir 和 @Aaron 的回答。但是当我调用它时,我收到一个错误
const dddd = await asyncBusboy(22);
[ts] 'await' expression is only allowed within an async function.
有什么建议?
最佳答案
你只需要这个:
declare module 'async-busboy' {
export default function asyncBusby
(subString: any): Promise<any>;
}
它返回
Promise
的事实是什么使它成为异步类型(与 async
修饰符无关)。消费者预计await
any
现在的值(value)。另一方面,
async
修饰符用于增强函数(主体)实现 (它返回的东西被包裹在一个 promise 中)。由于 type-def 不处理实现,因此 async
类型定义中不允许。换句话说,从方法/函数接口(interface)的角度来看
async
修饰符没有说/改变任何东西,因此是 不需要 在接口(interface)声明中。
关于typescript - 如何将异步函数添加到类型 def 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48448151/