javascript - Não é possível compilar Typescript: a propriedade send não existe em s3client
Estou usando a v3 do AWS SDK para JavaScript em um ambiente TypeScript/Node.js, mas quando executo com ts-node, ele reclama de não conseguir encontrar a função send no s3client. Meu código:
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);
O erro que recebo ao iniciar meu servidor é este:
/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'.
Isso é basicamente o mesmo que os exemplos de código na documentação oficial. Mas eu instalei os pacotes corretos (e até limpei minha pasta node_modules e a reinstalei) e o código em node_modules parece correto. O que estou fazendo de errado?
Para contexto, este é um script nodeJS rodando em ts-node em um contêiner docker-compose. Outros códigos funcionam bem, incluindo um comando para obter uma signedURL usando o mesmo objeto cliente.
Resposta #1
Recebemos o mesmo erro com um módulo @aws-sdk\client-s3 novo (v3.51.0), mas não com o mais antigo v3.47.0. Rebaixamos o módulo @aws-sdk\client-s3 para v3.47.0 e nossas preocupações desapareceram.