我正在尝试为async-busboy添加异步函数定义;
我创建了一个文件" async-busboy.d.ts"
declare module 'async-busboy' {
export default async function asyncBusby
(subString: any): Promise<any>;
}
但是这给了我错误:&#34;错误TS1040:&#39; async&#39;修饰符不能在环境上下文中使用。&#34;
如何编写异步函数defs?
感谢
EDIT 感谢@Titian Cernicova-Dragomir和@Aaron的回答。但是,当我打电话给它时,我得到一个错误
const dddd = await asyncBusboy(22);
[ts] 'await' expression is only allowed within an async function.
有什么建议吗?
答案 0 :(得分:1)
所有你需要的是:
declare module 'async-busboy' {
export default function asyncBusby
(subString: any): Promise<any>;
}
它返回Promise
这一事实使它成为异步。消费者现在需要await
any
值。 async
修饰符用于扩充函数体实现(它返回的内容包含在一个promise中),这在type-def中没有,这就是为什么async
不是允许在类型def。
答案 1 :(得分:0)
声明中不需要async
修饰符。 async
修饰符指示编译器发出允许使用await
的代码。从消费者的角度来看,重要的部分是它返回Promise
而不是如何在函数体中实现异步。您可以考虑async
函数的实现细节。
您的问题是致电网站问题,您需要将asyncBusby
称为async
的功能标记为:{/ 1}:
async function foo (){
const dddd = await asyncBusby(22);
console.log(dddd);
}