جافاسكريبت - غير قادر على ترجمة تايبسكريبت: الخاصية send غير موجودة على s3client


أنا أستخدم النسخة 3 من AWS SDK لجافاسكربت في بيئة Typescript/Nodejs، ولكن عندما أشغله باستخدام ts-node، يظهر لي خطأ بأنه لا يمكن العثور على دالة send على 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'.

هذا في الأساس نفس عينات الكود الموجودة في الوثائق الرسمية. لكنني قمت بتثبيت الحزم الصحيحة (وحتى قمت بمسح مجلد node_modules وإعادة تثبيته) والكود في node_modules يبدو صحيحًا. ما الخطأ الذي أفعله؟

للسياق، هذا نص برمجي NodeJS يعمل في ts-node داخل حاوية docker-compose. باقي الكود يعمل بشكل جيد، بما في ذلك أمر للحصول على عنوان URL موقع باستخدام نفس كائن العميل.

الإجابة رقم 1

لقد حصلنا على نفس الخطأ مع وحدة @aws-sdk\client-s3 الجديدة (v3.51.0) ولكن ليس مع النسخة القديمة v3.47.0. قمنا بالرجوع بوحدة @aws-sdk\client-s3 إلى v3.47.0 وذهبت مخاوفنا.