This commit is contained in:
Julien Valverdé
2024-01-29 18:39:20 +01:00
parent 5f0d21d93b
commit e493331ff3
3 changed files with 26 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
import { Simplify } from "type-fest"
import { Trait, TraitAbstractMembers, TraitImplInstance, expresses, trait } from "."
import { GetTraitAbstractMembers, GetTraitClass, GetTraitImplClass, GetTraitImplInstance, GetTraitInstance, Trait, TraitAbstractMembers, TraitImplInstance, expresses, trait } from "."
import { MergeInheritanceTree, TraitsAbstractMembers } from "./util"
import { Call, Fn, Tuples } from "hotscript"
@@ -41,13 +41,6 @@ const ActiveStatefulSubscription = trait<ActiveStatefulSubscriptionAbstractMembe
class ActiveStatefulSubscription extends Super {}
)
interface AbstractMembersOfTrait extends Fn {
return: this["arg0"] extends Trait<infer AbstractMembers, any>
? AbstractMembers
: never
}
// type Test = Simplify<TraitImplInstance<ReturnType<typeof Identifiable<bigint>>>>
type Test1 = [
TraitAbstractMembers<typeof StatefulSubscription>,
@@ -58,12 +51,10 @@ type Test2 = TraitsAbstractMembers<[
typeof ActiveStatefulSubscription,
]>
type Test3 = Simplify<
MergeInheritanceTree<
Call<Tuples.Map<AbstractMembersOfTrait>, [
typeof StatefulSubscription,
typeof ActiveStatefulSubscription,
]>
>
Call<Tuples.Map<GetTraitClass>, [
typeof StatefulSubscription,
typeof ActiveStatefulSubscription,
]>
>
// type Test2 = Simplify<MergeInheritanceTree<Test1>>