diff --git a/src/tests-inheritance.ts b/src/tests-inheritance.ts index 0205309..85fd68f 100644 --- a/src/tests-inheritance.ts +++ b/src/tests-inheritance.ts @@ -20,8 +20,8 @@ const Permissible = trait(Parent => { static readonly defaultPermissions: string[] = [] permissions: string[] = [] - constructor() { - super() + constructor(...args: any[]) { + super(...args) console.log("Permissible constructor") } } @@ -42,4 +42,5 @@ class User extends UserProto { } const user1 = new User(1n) -user1.equals(user1) +console.log(user1) +console.log(user1.equals(user1)) diff --git a/src/trait-inheritance.ts b/src/trait-inheritance.ts index cee3cb1..569cdea 100644 --- a/src/trait-inheritance.ts +++ b/src/trait-inheritance.ts @@ -36,7 +36,10 @@ export function extendsAndExpresses< traits: Traits, ) { - return extend as unknown as ( + return traits.reduce( + (previous, trait) => trait(previous), + extend, + ) as ( AbstractClass< InstanceType & UnionToIntersection<