And*_*ndy 6 amazon-dynamodb typescript
说我有一个打字稿界面:
interface IPerson {
id: string,
name: string
}
Run Code Online (Sandbox Code Playgroud)
我在发电机上的人员表上运行表扫描,我想做的是:
const client = new AWS.DynamoDB.DocumentClient();
client.scan(params, (error, result) => {
const people: IPerson[] = result.Items as IPerson[];
};
Run Code Online (Sandbox Code Playgroud)
我收到错误 Type 'AttributeMap[]' cannot be converted to type 'IPerson[]'
显然,它们是不同的类型,但是数据结构是完全相同的。我的问题是,从本质上讲AttributeMap我如何才能将发电机投射到IPerson界面上?
小智 5
执行此操作的正确方法是使用 AWS DynamoDB SDKunmarshall方法。
JavaScript AWS 开发工具包 V3(2020 年 12 月后)
\n使用包unmarshall中的方法@aws-sdk/util-dynamodb。
文档示例.
\nconst { unmarshall } = require("@aws-sdk/util-dynamodb");\n\nunmarshall(res.Item) as Type;\nRun Code Online (Sandbox Code Playgroud)\n旁注:AWS DynamoDB JavaScript SDK 提供了一个解决DynamoDBDocumentClient方案,可以消除整个问题并使用普通的键值对象。
JavaScript AWS SDK 的先前版本(2020 年 12 月之前)
\n\n// Cast the result items to a type.\nconst people: IPerson[] = result.Items?.map((item) => Converter.unmarshall(item) as IPerson);\nRun Code Online (Sandbox Code Playgroud)\n文档unmarshall():
\n\n解组(数据,选项)\xe2\x87\x92 映射
\n将 DynamoDB 记录转换为 JavaScript 对象。
\n
旁注:AWS DynamoDB JavaScript SDK 提供了一个解决DynamoDBDocumentClient方案,可以消除整个问题并使用普通的键值对象。
| 归档时间: |
|
| 查看次数: |
1174 次 |
| 最近记录: |