Skip to content

Unable to infer type to extend protected function for mixins#13924

@agubler

Description

@agubler

TypeScript Version: RC (2.2.0)

Code

classPerson{constructor(publicname: string){}protectedmyProtectedFunction(){// do something}}typeConstructor<T>=new(...args: any[])=>T;functionPersonMixin<TextendsConstructor<Person>>(Base: T){returnclassextendsBase{constructor(...args: any[]){super(...args);}myProtectedFunction(){super.myProtectedFunction();// do more things}};}classCustomerextendsPersonMixin(Person){accountBalance: number;}

Expected behavior:

No compilation errors

Actual behavior:

Errors with:

src/test.ts|24 col 7 error| Class 'Customer' incorrectly extends base class 'PersonMixin<typeof Person>.(Anonymous class) & Person'. Type 'Customer' is not assignable to type 'Person'. Property 'myProtectedFunction' is protected but type 'Customer' is not a class derived from 'Person'.

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFixedA PR has been merged for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions