Co-authored-by: Julien Valverdé <julien.valverde@mailo.com> Reviewed-on: https://git.jvalver.de/Thilawyn/traitify-ts/pulls/9
This commit was merged in pull request #9.
This commit is contained in:
@@ -45,13 +45,12 @@ export class TraitBuilder<
|
||||
ImplClass extends AbstractClass<object, []>,
|
||||
> {
|
||||
constructor(
|
||||
private readonly traitSuperExpression: SuperExpression,
|
||||
private readonly traitAbstract: Abstract,
|
||||
private readonly traitStaticAbstract: StaticAbstract,
|
||||
private readonly traitApply: (Super: AbstractClass<object>) => ImplClass,
|
||||
protected readonly traitSuperExpression: SuperExpression,
|
||||
protected readonly traitAbstract: Abstract,
|
||||
protected readonly traitStaticAbstract: StaticAbstract,
|
||||
protected readonly traitApply: (Super: AbstractClass<object>) => ImplClass,
|
||||
) {}
|
||||
|
||||
// TODO: consider "implements" as a name?
|
||||
abstract<A extends Abstract>(
|
||||
_: (Super: AbstractClass<Abstract>) => AbstractClass<A, []>
|
||||
) {
|
||||
@@ -63,7 +62,6 @@ export class TraitBuilder<
|
||||
)
|
||||
}
|
||||
|
||||
// TODO: consider "staticImplements" as a name?
|
||||
staticAbstract<A extends StaticAbstract>(
|
||||
_: (Super: AbstractClass<StaticAbstract>) => AbstractClass<A, []>
|
||||
) {
|
||||
@@ -75,7 +73,6 @@ export class TraitBuilder<
|
||||
)
|
||||
}
|
||||
|
||||
// TODO: consider "impl" as a name?
|
||||
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
|
||||
>(
|
||||
|
||||
@@ -64,8 +64,8 @@ export class TraitExpressionBuilder<
|
||||
const Traits extends Trait<any, any, any, any>[],
|
||||
> {
|
||||
constructor(
|
||||
private readonly expressionSuperclass: Superclass,
|
||||
private readonly expressionTraits: Traits,
|
||||
protected readonly expressionSuperclass: Superclass,
|
||||
protected readonly expressionTraits: Traits,
|
||||
) {}
|
||||
|
||||
extends<
|
||||
|
||||
Reference in New Issue
Block a user