This commit is contained in:
@@ -74,50 +74,24 @@ export class TraitBuilder<
|
||||
private readonly traitApply: (Super: AbstractClass<object>) => ImplClass,
|
||||
) {}
|
||||
|
||||
abstract<A extends ExtendAbstractSuper<SuperExpression, Abstract>>() {
|
||||
abstract<A extends Abstract>(
|
||||
_: (Super: AbstractClass<Abstract>) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
{} as A,
|
||||
{} as Simplify<A>,
|
||||
this.traitStaticAbstract,
|
||||
this.traitApply,
|
||||
)
|
||||
}
|
||||
|
||||
extendAbstract<A extends ExtendAbstractSuper<SuperExpression, Abstract>>(
|
||||
_: (
|
||||
Super: AbstractClass<
|
||||
ExtendAbstractSuper<SuperExpression, Abstract>
|
||||
>
|
||||
) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
{} as A,
|
||||
this.traitStaticAbstract,
|
||||
this.traitApply,
|
||||
)
|
||||
}
|
||||
|
||||
staticAbstract<A extends ExtendStaticAbstractSuper<SuperExpression, StaticAbstract>>() {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
this.traitAbstract,
|
||||
{} as A,
|
||||
this.traitApply,
|
||||
)
|
||||
}
|
||||
|
||||
extendStaticAbstract<A extends ExtendStaticAbstractSuper<SuperExpression, StaticAbstract>>(
|
||||
_: (
|
||||
Super: AbstractClass<
|
||||
ExtendStaticAbstractSuper<SuperExpression, StaticAbstract>
|
||||
>
|
||||
) => AbstractClass<A, []>
|
||||
staticAbstract<A extends StaticAbstract>(
|
||||
_: (Super: AbstractClass<StaticAbstract>) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
this.traitAbstract,
|
||||
{} as A,
|
||||
{} as Simplify<A>,
|
||||
this.traitApply,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user