0.1.7 #7

Merged
Thilawyn merged 6 commits from next into master 2024-02-21 04:44:24 +01:00
Showing only changes of commit fe465c131c - Show all commits

View File

@@ -51,6 +51,7 @@ export class TraitBuilder<
private readonly traitApply: (Super: AbstractClass<object>) => ImplClass, private readonly traitApply: (Super: AbstractClass<object>) => ImplClass,
) {} ) {}
// TODO: consider "implements" as a name?
abstract<A extends Abstract>( abstract<A extends Abstract>(
_: (Super: AbstractClass<Abstract>) => AbstractClass<A, []> _: (Super: AbstractClass<Abstract>) => AbstractClass<A, []>
) { ) {
@@ -62,6 +63,7 @@ export class TraitBuilder<
) )
} }
// TODO: consider "staticImplements" as a name?
staticAbstract<A extends StaticAbstract>( staticAbstract<A extends StaticAbstract>(
_: (Super: AbstractClass<StaticAbstract>) => AbstractClass<A, []> _: (Super: AbstractClass<StaticAbstract>) => AbstractClass<A, []>
) { ) {
@@ -73,6 +75,7 @@ export class TraitBuilder<
) )
} }
// TODO: consider "impl" as a name?
implement< implement<
ImplClassWithAbstract extends ImplSuper<typeof this> // TODO: find a way to set the constraint to concrete classes while keeping the Super arg as an abstract class ImplClassWithAbstract extends ImplSuper<typeof this> // TODO: find a way to set the constraint to concrete classes while keeping the Super arg as an abstract class
>( >(