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