无法编译 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,我们的担心消失了。
我在 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,我们的担心消失了。