التحقق من نوع الواجهة في TypeScript: كيفية تحديد مطابقة الكائن للواجهة؟
مرحبًا أيها الزملاء! بدأت في تعلم TypeScript وواجهت مشكلة تبدو بسيطة، لكنني لا أجد الحل الصحيح. لدي واجهة:
```typescript
interface User {
name: string;
age: number;
email: string;
}
```
أحصل على بيانات من API بصيغة `any` أو `unknown`. أحتاج إلى التحقق مما إذا كان الكائن المستلم يطابق واجهة `User` قبل استخدام حقوله. في JavaScript كنت سأكتب `typeof obj.name === 'string'` وهكذا، لكن في TypeScript أريد فعل ذلك بأناقة باستخدام إمكانيات اللغة.
حاولت كتابة `if (obj instanceof User)` لكن TypeScript يشتكي أن `User` هي واجهة وليست class. حاولت استخدام `typeof obj === 'User'` ولم يعمل أيضًا. بحثت في Google ووجدت إشارات عن type guards والدوال المخصصة، لكنني لم أفهم تمامًا كيفية القيام بذلك بشكل صحيح.
أرجو إرشادي كيف يمكن في TypeScript التحقق من أن الكائن يطابق الواجهة؟ المهم أن يعمل التحقق في مرحلة الترجمة (TypeScr