unknown مقابل any: الخيار الأكثر أماناً
تعلّم لماذا يجبرك unknown على التحقق من الأنواع قبل الاستخدام
unknown مقابل any: الخيار الأكثر أماناً درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
مرحبًا
مشكلة any
let val: any = getData();
val.someMethod(); // TypeScript: OK. Runtime: possible crashالتعريف بـ unknown
let val: unknown = getData();
// val.someMethod(); // Error: Object is of type 'unknown'تضييق unknown قبل الاستخدام
let input: unknown = getInput();
if (typeof input === 'string') {
console.log(input.toUpperCase()); // OK — narrowed to string
}لا يمكن إسناد unknown إلى أنواع محددة
let x: unknown = 'hello';
// let s: string = x; // Error
let s: string = x as string; // OK with assertionاستخدام unknown في كتل catch
try {
doSomething();
} catch (err: unknown) {
if (err instanceof Error) {
console.log(err.message); // safe
}
}استخدام unknown للبيانات الخارجية
const raw: unknown = JSON.parse(text);
if (
typeof raw === 'object' &&
raw !== null &&
'name' in raw
) {
console.log((raw as any).name);
}حواجز الأنواع مع unknown
function isUser(val: unknown): val is { name: string } {
return typeof val === 'object' && val !== null && 'name' in val;
}unknown مقابل never
// unknown: anything can be assigned to it
let a: unknown = 42; // OK
// never: nothing can be assigned to it
function fail(): never { throw new Error(); }الاختيار بين any وunknown
مكتبات التحقق وقت التشغيل
import { z } from 'zod';
const UserSchema = z.object({ name: z.string(), age: z.number() });
const user = UserSchema.parse(unknownData); // throws if invalidتحقق سريع
مراجعة
الأسئلة الشائعة
هل درس «unknown مقابل any: الخيار الأكثر أماناً» مجاني؟
نعم — نص درس «unknown مقابل any: الخيار الأكثر أماناً» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
ماذا ستتعلم في «unknown مقابل any: الخيار الأكثر أماناً»؟
تعلّم لماذا يجبرك unknown على التحقق من الأنواع قبل الاستخدام تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «unknown مقابل any: الخيار الأكثر أماناً»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الأنواع البدائية: string وnumber وboolean
- نوع any ولماذا يجب تجنّبه
- unknown مقابل any: الخيار الأكثر أماناً
- null وundefined والتحقق الصارم من null