This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { AbstractClass, Class } from "type-fest"
|
||||
import { Trait } from "./Trait"
|
||||
import { TraitExpression } from "./TraitExpression"
|
||||
import { Implements, ImplementsStatic, TraitExpression } from "./TraitExpression"
|
||||
import { StaticMembers } from "./util"
|
||||
|
||||
|
||||
@@ -48,6 +48,17 @@ export class TraitBuilder<
|
||||
)
|
||||
}
|
||||
|
||||
extendAbstract<A extends Abstract>(
|
||||
_: (Super: AbstractClass<Implements<SuperExpression> & Abstract>) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
{} as A,
|
||||
this.traitStaticAbstract,
|
||||
this.traitApply,
|
||||
)
|
||||
}
|
||||
|
||||
staticAbstract<A extends StaticAbstract>() {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
@@ -57,15 +68,13 @@ export class TraitBuilder<
|
||||
)
|
||||
}
|
||||
|
||||
extendAbstract<
|
||||
A extends Abstract
|
||||
>(
|
||||
abstract: (Super: AbstractClass<Abstract>) => AbstractClass<A, []>
|
||||
extendStaticAbstract<A extends StaticAbstract>(
|
||||
_: (Super: AbstractClass<ImplementsStatic<SuperExpression> & StaticAbstract>) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
this.traitAbstract,
|
||||
{} as A,
|
||||
this.traitStaticAbstract,
|
||||
this.traitApply,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user