Как вы элегантно импортируете AWS - Lambda в Typescript? - PullRequest
0 голосов
/ 12 сентября 2018

Я строю проект машинописного текста на AWS Lambda. Поскольку aws-sdk уже содержит определения типов, я ожидаю, что он также будет содержать определение для aws lambda. Но мне кажется, мне нужно установить @types/aws-lambda отдельно, чтобы он работал.

//import { Lambda } from "aws-sdk";
import { Context } from "aws-lambda";

module.exports.hello = async (event:any, context:Context) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'function executed successfully!',
      input: event,
    }),
  };
};

Я бы ожидал, что что-то подобное возможно:

import { Lambda } from "aws-sdk";

module.exports.hello = async (event:any, context:Lambda.Context) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'function executed successfully!',
      input: event,
    }),
  };
};

но это не так;)

Итак, как мне сделать это правильно?

1 Ответ

0 голосов
/ 12 сентября 2018

aws-sdk не содержит типов для лямбды.Так что вам, к сожалению, понадобятся и aws-sdk, и @types/aws-lambda.Также я бы предложил объявить @types/aws-lambda в devDependencies вашего package.json.

import * as AWS from "aws-sdk";
import { Context } from "aws-lambda";

module.exports.hello = async (event:any, context:Context) => {
  // eg. if you need a DynamoDB client
  // const docClient: AWS.DynamoDB.DocumentClient = new AWS.DynamoDB.DocumentClient({region: 'ap-southeast-2'});
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'function executed successfully!',
      input: event,
    }),
  };
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...