我正在 aws lambda 上构建一个 typescript 项目。由于 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,
}),
};
};
但它不是 ;)
那么我该如何正确地做到这一点呢?
最佳答案
aws-sdk
不包含 lambda 的类型。因此,不幸的是,您将同时需要 aws-sdk
和 @types/aws-lambda
。此外,我建议在 package.json
的 devDependencies
中声明 @types/aws-lambda
。
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,
}),
};
};
关于amazon-web-services - 如何在 Typescript 中优雅地导入 AWS - Lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52289862/