Pesquisa de site

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.