جافاسكريبت - غير قادر على ترجمة تايبسكريبت: الخاصية 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 وذهبت مخاوفنا.