HOTScript tests

This commit is contained in:
Julien Valverdé
2024-01-29 17:27:15 +01:00
parent bb6172381f
commit 5f0d21d93b
3 changed files with 23 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
import { Simplify } from "type-fest"
import { TraitAbstractMembers, TraitImplInstance, expresses, trait } from "."
import { Trait, TraitAbstractMembers, TraitImplInstance, expresses, trait } from "."
import { MergeInheritanceTree, TraitsAbstractMembers } from "./util"
import { Call, Fn, Tuples } from "hotscript"
const PrintsHelloOnNew = trait()(Super =>
@@ -41,12 +42,31 @@ const ActiveStatefulSubscription = trait<ActiveStatefulSubscriptionAbstractMembe
)
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>,
TraitAbstractMembers<typeof ActiveStatefulSubscription>,
]
type Test2 = Simplify<MergeInheritanceTree<Test1>>
type Test2 = TraitsAbstractMembers<[
typeof StatefulSubscription,
typeof ActiveStatefulSubscription,
]>
type Test3 = Simplify<
MergeInheritanceTree<
Call<Tuples.Map<AbstractMembersOfTrait>, [
typeof StatefulSubscription,
typeof ActiveStatefulSubscription,
]>
>
>
// type Test2 = Simplify<MergeInheritanceTree<Test1>>
const appliedIdentifiable = Identifiable<bigint>().apply({} as any)