Serverless TypeScript에서 타입

오병진·2021년 10월 19일
0
post-thumbnail

✨ 저의 Serverless 시리즈는 Typescript, yarn, AWS 기준으로 작성되므로 읽기 전 참고 바랍니다 ✨

TypeScript로 작성을 하다보니, 다음과 같은 상황에 변수에 어떤 타입을 줘야할지 헷갈릴 때가 있습니다, 또한 어떤 프로퍼티가 포함되어있는지 몰라 작성하기도 힘들고요.

export const hello: Function = async (
  event: any,
  context: any,
  next: Function // 콜백함수이지만, 최신 람다함수의 경우는 오히려 사용하면 에러가 나타납니다.
): Promise<{
  statusCode: number,
  headers: Object,
  body: string
}> => {
...
};

위와 같은 코드의 경우 event안에 request 관련 값들이 들어가있습니다.
headers, body.. 등등, 그렇지만 어떤값이 들어오는지 정확히 모르죠

그럼 어떻게 타입을 줘야할까?

aws-lambda를 이용하시는분들에게만 적용되는 사안이지만

yarn add -D @types/aws-lambda

다음과 같은 코드를 통해 타입을 다운받아주고

위에 제시했던 코드를 다음과 같이 고칠 수 있게됩니다.

import { APIGatewayEvent, Context } from "aws-lambda";

export const hello: Function = async (
  event: APIGatewayEvent,
  context: Context,
  next: Function // 콜백함수이지만, 최신 람다함수의 경우는 오히려 사용하면 에러가 나타납니다.
): Promise<{
  statusCode: number,
  headers: Object,
  body: string
}> => {
...
};

짜잔~
위와 같이 Context도 추가할 수 있습니다. 이 Context는 해당 람다 함수에 관한 정보들이 담겨있습니다.

끝!

profile
지나가는 사람입니다. 마저 지나갈게요 :D

0개의 댓글