无法编译 Typescript:属性 发送在 s3client 上不存在

Unable to compile Typescript: property send does not exist on s3client

我在 typescript/nodejs 环境中为 javascript 使用 AWS SDK v3,但是当我 运行 使用 ts-node 时,它​​抱怨无法找到s3client 上的发送功能。我的代码:

const client = new S3Client({
  credentialDefaultProvider: this.getCredentialDefaultProvider
  region: "us-west-2",
});
const command = new ListObjectsCommand({
  Bucket: bucket,
  Prefix: prefix,
});
const result = await client.send(command);

启动服务器时出现的错误是:

/server/node_modules/ts-node/src/index.ts:230
  return new TSError(diagnosticText, diagnosticCodes)

TSError: ⨯ Unable to compile TypeScript:
src/controllers/aws.controller.ts(56,37): error TS2339: Property 'send' does not exist on type 'S3Client'.

这与the official documentation中的代码示例基本相同。但是我已经安装了正确的包(甚至清除了我的 node_modules 文件夹并重新安装它)并且 node_modules 中的代码看起来是正确的。我做错了什么?

就上下文而言,这是 运行 在 ts-node 中 docker-compose 容器中的 nodeJS 脚本。其他代码工作正常,包括使用相同客户端对象获取 signedURL 的命令。

我们在新的 (v3.51.0) @aws-sdk\client-s3 模块中遇到了同样的错误,但在旧的 v3.47.0 中却没有。 将 @aws-sdk\client-s3 模块降级到 v3.47.0,我们的担心消失了。