你如何在Typescript中优雅地导入AWS-Lambda?

问题描述 投票:1回答:1

我正在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,
    }),
  };
};

但它不是;)

那么我该怎么做呢?

amazon-web-services typescript types aws-lambda
1个回答
1
投票

aws-sdk不包含lambda的类型。因此,遗憾的是,你需要aws-sdk@types/aws-lambda。另外我建议你在@types/aws-lambdadevDependencies宣布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,
    }),
  };
};
© www.soinside.com 2019 - 2024. All rights reserved.