هل يدعم TypeScript العامل ?. وما اسمه الصحيح؟
مرحبًا بالجميع! لقد بدأت مؤخرًا في تعلم TypeScript وواجهت مشكلة. غالبًا في الكود أحتاج إلى الوصول إلى خاصية كائن قد لا تكون موجودة. على سبيل المثال، لدي كائن `user` يأتي من الخادم، وقد يحتوي على حقل متداخل `profile.name`. إذا كتبت `user.profile.name`، فإن TypeScript يعطي خطأ بأن `profile` قد يكون `undefined`. أعلم أنه في JavaScript يوجد العامل `?.` الذي يسمح بالوصول الآمن إلى الخصائص. لكنني لست متأكدًا مما إذا كان TypeScript يدعمه وما اسمه الصحيح. لقد جربت الكتابة هكذا:
```typescript
interface User {
profile?: {
name?: string;
};
}
const user: User = {};
console.log(user.profile.name); // خطأ: Object is possibly 'undefined'
```
إذا أضفت `?.`، يختفي الخطأ:
```typescript
console.log(user?.profile?.name);
```
لكني لا أفهم، هل هذه ميزة من TypeScript أم مجرد JavaScript؟ وما الاسم الصحيح لهذا العامل — "السلسلة الاختيارية"، "الاستفهام"؟