كيفية تعيين سلسلة محددة في واجهة TypeScript (نوع حرفي)
مرحباً بالجميع! لقد بدأت للتو في تعلم TypeScript وواجهت مشكلة. أحتاج إلى إنشاء واجهة لكائن يحتوي على حقل `status`. يجب أن يقبل هذا الحقل قيماً محددة بدقة، مثل: `"active"`، `"inactive"` أو `"pending"`. إذا حاولت تعيين أي سلسلة أخرى، يجب أن يحدث خطأ في الترجمة.
حاولت القيام بذلك:
```typescript
interface UserStatus {
status: string;
}
```
لكن هذا غير مناسب، لأن `string` يسمح بأي سلاسل. أريد أن يتحقق TS من أن قيمة حقل `status` هي واحدة من ثلاث سلاسل محتملة.
حاولت استخدام `enum`، لكن قيل لي أنه يمكن القيام بذلك بشكل أبسط — باستخدام الأنواع الحرفية (literal types). كيف يمكن وصف هذه الواجهة بشكل صحيح؟ وهل يمكن جعل IDE يقترح الخيارات الممكنة عند الإدخال؟
مثال لما أريد:
```typescript
const user1: User = { status: "active" }; // صحيح
const user2: User = { status: "deleted" }; // خطأ!
```
أرجو توضيح كيفية تنفيذ ذلك.