javascript - Nu se poate compila Typescript: proprietatea send nu există pe s3client


Folosesc versiunea v3 a SDK-ului AWS pentru JavaScript într-un mediu TypeScript/Node.js, dar când îl rulez cu ts-node, se plânge că nu poate găsi funcția send pe s3client. Codul meu:

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);

Eroarea pe care o primesc când pornesc serverul meu este aceasta:

/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'.

Aceasta este practic aceeași lucru ca exemplele de cod din documentația oficială. Dar am instalat pachetele corecte (și chiar am șters folderul node_modules și l-am reinstalat) și codul din node_modules arată corect. Ce fac greșit?

Pentru context, acesta este un script nodeJS care rulează în ts-node într-un container docker-compose. Alte coduri funcționează bine, inclusiv o comandă pentru a obține un signedURL folosind același obiect client.

Răspuns #1

Am avut aceeași eroare cu un modul proaspăt (v3.51.0) @aws-sdk\client-s3, dar nu și cu versiunea mai veche v3.47.0. Am făcut downgrade la modulul @aws-sdk\client-s3 la v3.47.0 și grijile noastre au dispărut.