Pure TS implementation attempt
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
28
src/tests.ts
28
src/tests.ts
@@ -1,7 +1,25 @@
|
||||
import { TraitClass } from "./Trait"
|
||||
import { Trait, TraitClass } from "./Trait"
|
||||
import { trait } from "./TraitBuilder"
|
||||
import { Implements, ImplementsStatic } from "./TraitExpression"
|
||||
import { Implements, ImplementsStatic, TraitExpression } from "./TraitExpression"
|
||||
import { expression } from "./TraitExpressionBuilder"
|
||||
import { ExtendPlain } from "./util"
|
||||
|
||||
|
||||
type ExtendAbstractSuper<
|
||||
SuperExpression extends TraitExpression<
|
||||
typeof TraitExpression.NullSuperclass,
|
||||
Trait<any, any, any, any>[]
|
||||
>,
|
||||
Abstract extends object,
|
||||
> = (
|
||||
// ExtendPlain<[
|
||||
// ...Trait.OwnAbstract<
|
||||
// TraitExpression.Traits<SuperExpression>[number]
|
||||
// >,
|
||||
// Abstract,
|
||||
// ]>
|
||||
TraitExpression.Traits<SuperExpression>[number]
|
||||
)
|
||||
|
||||
|
||||
const PrintsHelloOnNew = trait
|
||||
@@ -48,7 +66,7 @@ const StatefulSubscription = trait
|
||||
type StatefulSubscriptionClass = TraitClass<typeof StatefulSubscription>
|
||||
|
||||
const ActiveStatefulSubscription = expression
|
||||
.expresses(StatefulSubscription)
|
||||
.expresses(PrintsHelloOnNew, StatefulSubscription)
|
||||
.build()
|
||||
.subtrait()
|
||||
.extendAbstract(Super => class extends Super {
|
||||
@@ -58,6 +76,10 @@ const ActiveStatefulSubscription = expression
|
||||
.build()
|
||||
|
||||
type ActiveStatefulSubscriptionClass = TraitClass<typeof ActiveStatefulSubscription>
|
||||
type Test = ExtendAbstractSuper<
|
||||
Trait.OwnSuperExpression<typeof ActiveStatefulSubscription>,
|
||||
Trait.OwnAbstract<typeof ActiveStatefulSubscription>
|
||||
>
|
||||
|
||||
|
||||
class TestSuperclass {
|
||||
|
||||
Reference in New Issue
Block a user