Microsoft/TypeScript

Cannot access protected field but private field inside nested class

Open

#59,989 opened on Sep 17, 2024

View on GitHub
 (1 comment) (1 reaction) (0 assignees)TypeScript (6,726 forks)batch import
BugDomain: classesHelp Wanted

Repository metrics

Stars
 (48,455 stars)
PR merge metrics
 (Avg merge 6d 17h) (9 merged PRs in 30d)

Description

🔎 Search Terms

private, protected

🕗 Version & Regression Information

Version 5.6.2

⏯ Playground Link

https://www.typescriptlang.org/play/?#code/KYDwDg9gTgLgBAYwDYEMDOa4DEITgbwChC5S4woIZgFqATOGACwEs0BJNABUutuAYBeOAEYA3CTIUWANxTVGrDtyiz5wOMPHEycAEYooACgCUALhx4iu3QggA7NPGbzNithJtlJXqMBgArlD2cPbAAO6IqBhwoNT2dJiWBDpeNmgQALb+rPYA5qYpacVwfoHBivIAdMxsnDxqCgDUlTA1SvW8NPSeJaQAvj42g7qD-UA

💻 Code

export class Foo {

    protected thisIsProtected = 1;
    private thisIsPrivate = 1;

    bar():Foo {
        const that = this;
        
        return new class extends Foo {

            something() {
                return that.thisIsPrivate + that.thisIsProtected;
            }
        }
    }
}

🙁 Actual behavior

I get a compile error for that.thisIsProtected, but not for that.thisIsPrivate

🙂 Expected behavior

I can access the protected field, like the private

Additional information about the issue

No response

Contributor guide