Private members (original) (raw)
TypeScript Version: 4.1.2
Search Terms:
Expected behavior:
should throw an error with "target": "ESNext"
and #
private member
Actual behavior:
Related Issues:
#17535
https://stackoverflow.com/a/45244695/4794368
Code
class A { #str = 'pr Str' constructor() { new A.B(this) } private static B = class { constructor(private a: A) { console.log(this.a.#str) } } } test: { new A }
Output
"use strict"; class A { constructor() { this.#str = 'pr Str'; new A.B(this); } #str; } A.B = class { constructor(a) { this.a = a; console.log(this.a.#str); } }; test: { new A; }
Compiler Options
{ "compilerOptions": { "noImplicitAny": true, "strictNullChecks": true, "strictFunctionTypes": true, "strictPropertyInitialization": true, "strictBindCallApply": true, "noImplicitThis": true, "noImplicitReturns": true, "alwaysStrict": true, "allowUnusedLabels": true, "esModuleInterop": true, "declaration": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, "moduleResolution": 2, "target": "Latest", "jsx": "React", "module": "ESNext" } }
Playground Link: Provided