تتحكم معدلات الخصائص هذه في ما إذا كانت الخصائية مطلوبة وما إذا كان يمكن إعادة تعيينها.
الاختيارية (?)
ts
{
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
تتحكم معدلات الخصائص هذه في ما إذا كانت الخصائية مطلوبة وما إذا كان يمكن إعادة تعيينها.
?) {
: ;
?: ;
}
: = { : };
: = { : , : };
() {
u..;
u.?.;
}
الخصية الاختيارية لها النوع T | undefined، لذا يفرض المترجم عليك التعامل مع حالة الغياب — مما يمنع أخطاء "cannot read property of undefined".
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 1, y: 2 };
p.x = 5; // ❌ Error: cannot assign to readonly property
// arrays too
const nums: readonly number[] = [1, 2, 3];
nums.push(4); // ❌ push doesn't exist on readonly array
readonly موجود وقت الترجمة فقط (بدون فرض وقت التشغيل)، لكنه يوثق ويفرض عدم القابلية للتغيير في نظام الأنواع، مما يؤدي إلى التقاط التغييرات العرضية.
interface Config { readonly id: string; tags?: readonly string[]; }
type Frozen = Readonly<User>; // utility type makes ALL props readonly
? يمثل البيانات الاختيارية فعلاً ويفرض سلامة null؛ readonly يعبر عن عدم القابلية للتغيير وينفذها (رائع للإعدادات والخصائص ومنع التحور الحالة العرضي).
كلاهما يدفع فحص الصحة إلى المترجم.
مكتبة من أسئلة مقابلات تقنية المعلومات مع إجابات مفصّلة — من المبتدئ إلى المتقدم.
تبرع