Working inheritance traits
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2023-12-28 05:21:00 +01:00
parent 3a155d5ef9
commit f619f47fc3
2 changed files with 8 additions and 4 deletions

View File

@@ -20,8 +20,8 @@ const Permissible = trait(Parent => {
static readonly defaultPermissions: string[] = [] static readonly defaultPermissions: string[] = []
permissions: string[] = [] permissions: string[] = []
constructor() { constructor(...args: any[]) {
super() super(...args)
console.log("Permissible constructor") console.log("Permissible constructor")
} }
} }
@@ -42,4 +42,5 @@ class User extends UserProto {
} }
const user1 = new User(1n) const user1 = new User(1n)
user1.equals(user1) console.log(user1)
console.log(user1.equals(user1))

View File

@@ -36,7 +36,10 @@ export function extendsAndExpresses<
traits: Traits, traits: Traits,
) { ) {
return extend as unknown as ( return traits.reduce(
(previous, trait) => trait(previous),
extend,
) as (
AbstractClass< AbstractClass<
InstanceType<C> & InstanceType<C> &
UnionToIntersection< UnionToIntersection<