Avatar ·

كيفية تحديد الأنواع بشكل صحيح عند تفكيك الكائنات في TypeScript؟

مرحبًا! لقد بدأت للتو في تعلم TypeScript وواجهت مشكلة عند تفكيك الكائنات. لنفترض أن لدي دالة تأخذ كائنًا بإعدادات المستخدم، وأريد تفكيكه مباشرة في المعاملات: ```typescript function createUser({name, age, email}) { // ... الكود } ``` لكن TypeScript يشتكي من أن المعاملات ليس لها أنواع. حاولت الكتابة بهذا الشكل: ```typescript function createUser({name: string, age: number, email: string}) { // ... } ``` لكن هذا لا يعمل — فهو يعتبر `string` و `number` كأسماء متغيرات جديدة، وليس أنواعًا. ثم جربت خيارًا آخر: ```typescript function createUser({name, age, email}: {name: string, age: number, email: string}) { // ... } ``` هذا يبدو أنه يعمل، لكنه يبدو ضخمًا. وماذا لو أردت جعل الخصائص اختيارية؟ أو إذا كان لدي تفكيك متداخل؟ على سبيل المثال، هناك كائن بعنوان: ```typescript const user = { name: 'إيفان', address: {