Avatar ·

كيفية تعيين سلسلة محددة في واجهة 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" }; // خطأ! ``` أرجو توضيح كيفية تنفيذ ذلك.