- Notifications
You must be signed in to change notification settings - Fork 13.2k
Closed
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issue
Milestone
Description
TypeScript Version: 2.2.0-dev.20170202
Code
typeConstructor<T>=new(...args: any[])=>T;classA{publicpb: number=2;protectedptd: number=1;privatepvt: number=0;}functionmixB<TextendsConstructor<{}>>(Cls: T){returnclassextendsCls{protectedptd: number=10;//overrideprivatepvt: number=0;//hiding try};}functionmixB2<TextendsConstructor<A>>(Cls: T){returnclassextendsCls{protectedptd: number=10;//override//private pvt: number = 0; //hiding try failded: TS2415};}constAB=mixB(A),AB2=mixB2(A);functionmixC<TextendsConstructor<{}>>(Cls: T){returnclassextendsCls{protectedptd: number=100;//overrideprivatepvt: number=0;//hiding try};}constAB2C=mixC(AB2),ABC=mixC(AB);consta=newA(),ab=newAB(),abc=newABC(),ab2c=newAB2C();Expected behavior:
a.pb.toFixed();//oka.ptd.toFixed();//error: TS2445a.pvt.toFixed();//error: TS2341ab.pb.toFixed();//okab.ptd.toFixed();//error: TS2445ab.pvt.toFixed();//error: TS2341abc.pb.toFixed();//okabc.ptd.toFixed();//error: TS2445abc.pvt.toFixed();//error: TS2341ab2c.pb.toFixed();//okab2c.ptd.toFixed();//error: TS2445ab2c.pvt.toFixed();//error: TS2341Actual behavior:
a.pb.toFixed();//oka.ptd.toFixed();//ok error: TS2445a.pvt.toFixed();//ok error: TS2341ab.pb.toFixed();//okab.ptd.toFixed();//ok =(ab.pvt.toFixed();//ok =(abc.pb.toFixed();//okabc.ptd.toFixed();//ok =(abc.pvt.toFixed();//ok =(ab2c.pb.toFixed();//okab2c.ptd.toFixed();//ok =(ab2c.pvt.toFixed();//ok =(Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issue