Skip to content

Different behaviors between actual compiler and baselines of class member override.Β #43533

Closed
@g-plane

Description

@g-plane

Bug Report

πŸ”Ž Search Terms

class override

πŸ•— Version & Regression Information

  • This changed between versions 4.2.0 and nightly

⏯ Playground Link

Playground link with relevant code

πŸ’» Code

class B {
    p1: number = 1;
    p2: number = 2;
    p3: number = 3;
    p4: number = 4;
    oop: number;
    pp: number;
    op: number;
}

class D extends B{
    declare p1: number

    override declare p2: number;

    readonly override p3: number;

    override readonly p4: number;

    override static sp: number;

    override override oop: number;

    public override pp: number;
    override public op: number;

    override constructor () {
        super();
    }
}

πŸ™ Actual behavior

I've tried the same code in playground with nightly version and with npm install typescript@next, and there's only one compilation error occurred: 'override' modifier already seen. . Other errors, such as 'public' modifier must precede 'override' modifier., 'static' modifier cannot be used with 'override' modifier. and etc. can't be reproduced as baselines in https://github.com/microsoft/TypeScript/blob/master/tests/baselines/reference/override5.errors.txt , so I'm not sure which one is correct.

Context: we're implementing parsing override syntax in swc: swc-project/swc#1541 .

πŸ™‚ Expected behavior

Not sure. Stated as above.

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFix AvailableA PR has been opened for this issueGood First IssueWell scoped, documented and has the green lightHelp WantedYou can do this

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions