This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Pipe, Tuples } from "hotscript"
|
||||
import { AbstractClass, Class } from "type-fest"
|
||||
import { Trait } from "./Trait"
|
||||
import { Trait, TraitClass, TraitConcreteClass, TraitInstance } from "./Trait"
|
||||
import { TraitExpression } from "./TraitExpression"
|
||||
import { ExtendFn, SimplifyFn, StaticMembers } from "./util"
|
||||
|
||||
@@ -109,15 +109,17 @@ export class TraitBuilder<
|
||||
|
||||
implement<
|
||||
ImplClassWithAbstract extends (
|
||||
Class<Abstract, []> &
|
||||
SuperStaticAbstract<SuperExpression, StaticAbstract> &
|
||||
TraitConcreteClass<
|
||||
Trait<SuperExpression, Abstract, StaticAbstract, ImplClass>
|
||||
> &
|
||||
{ _tag: TraitApplierSuperTag }
|
||||
)
|
||||
>(
|
||||
apply: (
|
||||
Super: (
|
||||
AbstractClass<Abstract> &
|
||||
StaticAbstract &
|
||||
TraitClass<
|
||||
Trait<SuperExpression, Abstract, StaticAbstract, ImplClass>
|
||||
> &
|
||||
{ _tag: TraitApplierSuperTag }
|
||||
)
|
||||
) => ImplClassWithAbstract
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trait } from "./Trait"
|
||||
import { TraitClass } from "./Trait"
|
||||
import { trait } from "./TraitBuilder"
|
||||
import { Implements, ImplementsStatic } from "./TraitExpression"
|
||||
import { expression } from "./TraitExpressionBuilder"
|
||||
@@ -15,7 +15,7 @@ const PrintsHelloOnNew = trait
|
||||
})
|
||||
.build()
|
||||
|
||||
type PrintsHelloOnNewClass = Trait.Class<typeof PrintsHelloOnNew>
|
||||
type PrintsHelloOnNewClass = TraitClass<typeof PrintsHelloOnNew>
|
||||
|
||||
const Identifiable = <ID>() => trait
|
||||
.abstract<{ readonly id: ID }>()
|
||||
@@ -45,7 +45,7 @@ const StatefulSubscription = trait
|
||||
})
|
||||
.build()
|
||||
|
||||
type StatefulSubscriptionClass = Trait.Class<typeof StatefulSubscription>
|
||||
type StatefulSubscriptionClass = TraitClass<typeof StatefulSubscription>
|
||||
|
||||
const ActiveStatefulSubscription = expression
|
||||
.expresses(StatefulSubscription)
|
||||
@@ -57,7 +57,7 @@ const ActiveStatefulSubscription = expression
|
||||
})
|
||||
.build()
|
||||
|
||||
type ActiveStatefulSubscriptionClass = Trait.Class<typeof ActiveStatefulSubscription>
|
||||
type ActiveStatefulSubscriptionClass = TraitClass<typeof ActiveStatefulSubscription>
|
||||
|
||||
|
||||
class TestSuperclass {
|
||||
|
||||
Reference in New Issue
Block a user