كيفية تحديد الأنواع بشكل صحيح عند تفكيك الكائنات في 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: {