1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts(11,5): error TS2448: Block-scoped variable 'getY' used before its declaration.
tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts(11,28): error TS18013: Property '#y' is not accessible outside class 'D' because it has a private identifier.
tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts(21,28): error TS18013: Property '#x' is not accessible outside class 'C' because it has a private identifier.
==== tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts (3 errors) ====
let getX: (c: C) => number;
class C {
#x = 1
constructor(x: number) {
this.#x = x;
}
static {
// getX has privileged access to #x
getX = (obj: C) => obj.#x;
getY = (obj: D) => obj.#y;
~~~~
!!! error TS2448: Block-scoped variable 'getY' used before its declaration.
!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts:15:5: 'getY' is declared here.
~~
!!! error TS18013: Property '#y' is not accessible outside class 'D' because it has a private identifier.
}
}
let getY: (c: D) => number;
class D {
#y = 1
static {
// getY has privileged access to y
getX = (obj: C) => obj.#x;
~~
!!! error TS18013: Property '#x' is not accessible outside class 'C' because it has a private identifier.
getY = (obj: D) => obj.#y;
}
}
|