Typescript 带类型脚本的Middy,回调类型

Typescript 带类型脚本的Middy,回调类型,typescript,middy,Typescript,Middy,我试图在lambdaapi调用中使用TyepScript witnMiddy。 我的部分代码: // My types definition import BodyRequestType from 'types'; // some code async function myFunction ( event: { body: BodyRequestType }, callback: ??? <-- ): Promise<void> { // my code

我试图在lambdaapi调用中使用TyepScript witn
Middy
。 我的部分代码:

// My types definition
import BodyRequestType from 'types';

// some code

async function myFunction (
  event: { body: BodyRequestType },
  callback: ??? <--
): Promise<void> {
  // my code
  return callback(null, {
    statusCode: 200,
    body: JSON.stringify(data)
  });
}

export const handler = middy(myFunction);
但是我在
middy(myFunction)
上得到了这个错误:

TS2345:类型为“(事件:{body:BodyRequestType;},回调:回调)=>Promise”的参数不可分配给
类型为“AsyncHandler”的参数。
Type'(事件:{body:BodyRequestType;},回调:回调)=>Promise'
不可分配给类型“(事件:任意,上下文:上下文,回调:回调)=>void”。
参数“回调”和“上下文”的类型不兼容。
类型“Context”不可分配给类型“Callback”。
类型“Context”未提供签名的匹配项“(错误?:字符串|错误| null |未定义,结果?:any):void”。

我应该在myFunction的
回调
参数上使用什么类型?

问题是第二个参数在其签名中应该是
上下文
类型,而不是回调

由于上下文是必需的,所以您只需将
上下文
回调
分别设置为第二个和第三个参数,如下所示:


从“aws lambda”导入{Context,Callback};
异步函数myFunction(
事件:{body:BodyRequestType},
上下文:上下文,
回调:回调
) {
// ...
}

我30分钟前就放弃了,把
any
放在其他事情上,然后我读到这些论点的顺序很重要。。。还有类型,谢谢你!有一个技巧是直接在包中读取类型定义,这将对您有很大帮助
import { Callback } from 'aws-lambda'
// then...
callback: Callback
TS2345: Argument of type '(event: { body: BodyRequestType; }, callback: Callback<any>) => Promise<void>' is not assignable to 
parameter of type 'AsyncHandler<Context>'.
Type '(event: { body: BodyRequestType; }, callback: Callback<any>) => Promise<void>'
is not assignable to type '(event: any, context: Context, callback: Callback<any>) => void'.
Types of parameters 'callback'and 'context' are incompatible.
Type 'Context' is not assignable to type 'Callback<any>'.
Type 'Context' provides no match for the signature '(error?: string | Error | null | undefined, result?: any): void'.