التحقق من الشمولية باستخدام never
استخدموا never للتأكد من معالجة جميع حالات الاتحاد
التحقق من الشمولية باستخدام never درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
مرحبًا
مشكلة اكتمال الحالات
type Shape = 'circle' | 'square';
function area(s: Shape): number {
if (s === 'circle') return 3.14;
if (s === 'square') return 1;
// What if we add 'triangle'?
}نمط التحقق من اكتمال الحالات باستخدام never
function assertNever(x: never): never {
throw new Error('Unexpected value: ' + x);
}
function area(s: Shape): number {
switch (s) {
case 'circle': return 3.14;
case 'square': return 1;
default: return assertNever(s);
}
}إضافة عضو جديد إلى الاتحاد
type Shape = 'circle' | 'square' | 'triangle';
// Now TypeScript errors on assertNever(s) because s is 'triangle'
// — it's not never!فحص never مضمن
function handle(shape: Shape): string {
switch (shape.kind) {
case 'circle': return 'circle';
case 'square': return 'square';
default:
const _: never = shape; // Error if not exhaustive
throw new Error('Unknown shape');
}
}التحقق من اكتمال الحالات دون switch
function process(action: Action): void {
if (action.type === 'A') { /* ... */ }
else if (action.type === 'B') { /* ... */ }
else {
const _: never = action; // exhaustive
}
}never في قيود الأنواع العامة
type NonNullable<T> = T extends null | undefined ? never : T;
// Removes null and undefined from Tاستخدام never للحالات المستحيلة
type State<T> =
| { kind: 'loading' }
| { kind: 'success'; data: T }
| { kind: 'error'; msg: string };
// There should never be a state with kind: 'unknown'never في الأنواع الشرطية
type NonFunctions<T> = {
[K in keyof T]: T[K] extends Function ? never : K
}[keyof T];
// Returns keys whose values are not functionsينتشر never عبر أنواع الاتحاد
type T = string | never; // string
type U = never | number | never; // numberالدالة المساعدة assertNever
function assertNever(value: never, message?: string): never {
throw new Error(message ?? `Unhandled: ${JSON.stringify(value)}`);
}فحص سريع
مراجعة
الأسئلة الشائعة
هل درس «التحقق من الشمولية باستخدام never» مجاني؟
نعم — نص درس «التحقق من الشمولية باستخدام never» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
ماذا ستتعلم في «التحقق من الشمولية باستخدام never»؟
استخدموا never للتأكد من معالجة جميع حالات الاتحاد تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التحقق من الشمولية باستخدام never»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تضييق النوع باستخدام typeof وقيم الصواب
- تضييق النوع باستخدام instanceof وin
- دوال حراسة الأنواع المعرّفة من المستخدم
- التحقق من الشمولية باستخدام never