tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts(7,9): error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses. tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts(16,9): error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses. tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts(25,9): error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses. tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts(40,1): error TS2445: Property 'x' is protected and only accessible within class 'Base' and its subclasses. tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts(41,1): error TS2445: Property 'x' is protected and only accessible within class 'Base' and its subclasses. tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts(42,1): error TS2445: Property 'x' is protected and only accessible within class 'Base' and its subclasses. tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts(43,1): error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses. ==== tests/cases/conformance/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts (7 errors) ==== class Base { protected static x: string; static staticMethod() { Base.x; // OK, accessed within their declaring class Derived1.x; // OK, accessed within their declaring class Derived2.x; // OK, accessed within their declaring class Derived3.x; // Error, redefined in a subclass, can only be accessed in the declaring class or one of its subclasses ~~~~~~~~~~ !!! error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses. } } class Derived1 extends Base { static staticMethod1() { Base.x; // OK, accessed within a class derived from their declaring class Derived1.x; // OK, accessed within a class derived from their declaring class Derived2.x; // OK, accessed within a class derived from their declaring class Derived3.x; // Error, redefined in a subclass, can only be accessed in the declaring class or one of its subclasses ~~~~~~~~~~ !!! error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses. } } class Derived2 extends Base { static staticMethod2() { Base.x; // OK, accessed within a class derived from their declaring class Derived1.x; // OK, accessed within a class derived from their declaring class Derived2.x; // OK, accessed within a class derived from their declaring class Derived3.x; // Error, redefined in a subclass, can only be accessed in the declaring class or one of its subclasses ~~~~~~~~~~ !!! error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses. } } class Derived3 extends Derived1 { protected static x: string; static staticMethod3() { Base.x; // OK, accessed within a class derived from their declaring class Derived1.x; // OK, accessed within a class derived from their declaring class Derived2.x; // OK, accessed within a class derived from their declaring class Derived3.x; // OK, accessed within their declaring class } } Base.x; // Error, neither within their declaring class nor classes derived from their declaring class ~~~~~~ !!! error TS2445: Property 'x' is protected and only accessible within class 'Base' and its subclasses. Derived1.x; // Error, neither within their declaring class nor classes derived from their declaring class ~~~~~~~~~~ !!! error TS2445: Property 'x' is protected and only accessible within class 'Base' and its subclasses. Derived2.x; // Error, neither within their declaring class nor classes derived from their declaring class ~~~~~~~~~~ !!! error TS2445: Property 'x' is protected and only accessible within class 'Base' and its subclasses. Derived3.x; // Error, neither within their declaring class nor classes derived from their declaring class ~~~~~~~~~~ !!! error TS2445: Property 'x' is protected and only accessible within class 'Derived3' and its subclasses.