تخطَّ إلى المحتوى

يصلح TypeScript 7 إمكانية الوصول إلى دوال الضبط في الاتحادات والتقاطعات

نُشر في: 24 أغسطس 2026

دمجت Microsoft إصلاحًا لمدقق TypeScript الأصلي يحافظ على الفصل بين إمكانيتي الوصول للقراءة والكتابة في الخصائص المُنشأة من الاتحادات والتقاطعات.

ما الذي تغير

في السابق، كان من الممكن تجاهل إمكانية الوصول إلى دالة الضبط في هذه الخصائص المُنشأة، لأن عملية التحقق كانت تستخدم فعليًا إمكانية الوصول إلى دالة الجلب. ولذلك، كان من الممكن أن تسمح دالة جلب عامة مقترنة بدالة ضبط محمية بكتابة غير صالحة من خلال اتحاد أو تقاطع.

declare class C1 {
get foo(): number;
protected set foo(value: number);
}
declare class C2 {
get foo(): number;
protected set foo(value: number);
}
declare const c: C1 | C2;
c.foo; // Valid: read access is public
c.foo = 123; // Invalid: write access is protected

يسجل المدقق الآن إمكانية الوصول للكتابة بصورة منفصلة. تظل قراءة foo صالحة، بينما يؤدي إسناد قيمة إليها إلى الإبلاغ الصحيح عن خطأ في إمكانية الوصول.

لماذا يهم ذلك

يمكن للفئات أن تتيح القراءة العامة عمدًا مع تقييد الكتابة. يحافظ الإصلاح على هذا الحد عندما تدمج TypeScript أنواع الكائنات في اتحادات أو تقاطعات بدلًا من توسيع إمكانية الوصول للكتابة دون قصد.

التوافر

دُمج التغيير في قاعدة شيفرة TypeScript الأصلية بعد TypeScript 7.0. لا يحدد المصدر إصدار npm مستقرًا يتضمنه، لذا تحقق من ملاحظات إصدار النسخة المثبتة قبل الاعتماد على هذا السلوك.

المصدر

اقرأ طلب السحب المدمج الخاص بـ TypeScript: Fix getDeclarationModifierFlagsFromSymbolEx for synthetic properties.