0.1.0 #1

Merged
Thilawyn merged 65 commits from next into master 2024-02-06 03:15:40 +01:00
2 changed files with 11 additions and 9 deletions
Showing only changes of commit a123da55fe - Show all commits

View File

@@ -12,8 +12,10 @@ class TraitExpressionBuilder<
constructor(private expression: TraitExpression<Super, OwnTraits, AllTraits>) {}
extends<
NewSuper extends AbstractClass<any>
>(superclass: NewSuper) {
Super extends AbstractClass<any>
>(
superclass: Super
) {
return new TraitExpressionBuilder(
new TraitExpression(
superclass,
@@ -56,12 +58,12 @@ class TraitExpressionBuilder<
]) as SpreadSupertraits<Traits>
}
get() {
return this.expression as GetTraitExpression<Super, OwnTraits, AllTraits>
build() {
return this.expression as BuildTraitExpression<Super, OwnTraits, AllTraits>
}
then<V>(fn: (expression: ReturnType<typeof this.get>) => V): V {
return fn(this.get())
then<V>(fn: (expression: ReturnType<typeof this.build>) => V): V {
return fn(this.build())
}
}
@@ -110,7 +112,7 @@ type ImplStaticMembersExtendable<
]>
)
type GetTraitExpression<
type BuildTraitExpression<
Superclass extends AbstractClass<{}>,
OwnTraits extends Trait<any, any, any>[],
AllTraits extends Trait<any, any, any>[],

View File

@@ -48,7 +48,7 @@ class TestSuperclass {
}
const builder = expression
const exp = expression
.extends(TestSuperclass)
.expresses(
PrintsHelloOnNew,
@@ -56,8 +56,8 @@ const builder = expression
// Identifiable<number>(),
StatefulSubscription,
)
.build()
const exp = builder.get()
type Abs = Implements<typeof exp>
// exp.subtrait(