属性 'ExclusiveStartKey' 不存在于类型 '{ TableName: any; }'

Property 'ExclusiveStartKey' does not exist on type '{ TableName: any; }'

我正在尝试扫描可能超过 1 MB 的 DynamoDB table,因此我正在使用 ExclusiveStartKey。我一直在浏览 中的所有示例,但在这一行中出现错误:scanParams.ExclusiveStartKey = items.LastEvaluatedKey;

src/services/DynamoDB.ts:33:18 - error TS2339: Property 'ExclusiveStartKey' does not exist on type '{ TableName: any; }'.

33       scanParams.ExclusiveStartKey = items.LastEvaluatedKey;
                    ~~~~~~~~~~~~~~~~~


Found 1 error.

这种方式是有道理的,因为 scanParams 通常只有 table 名称而没有其他键。那么,我该如何摆脱这个错误呢?

params 的形状提示到 Typescript:

const params = {
  TableName: tableName,
  ExclusiveStartKey: undefined, // <-- add this
};

或者,如果您真的很喜欢,可以导入并使用库的定义类型。如果您使用的是 doc client from SDK v3,例如:

import {ScanCommandInput} from '@aws-sdk/lib-dynamodb'

const params: ScanCommandInput = {
  TableName: tableName,
};