This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import { Pipe, Tuples } from "hotscript"
|
||||
import { AbstractClass, Class } from "type-fest"
|
||||
import { Trait } from "./Trait"
|
||||
import { Implements, ImplementsStatic, TraitExpression } from "./TraitExpression"
|
||||
import { StaticMembers } from "./util"
|
||||
import { TraitExpression } from "./TraitExpression"
|
||||
import { ExtendFn, SimplifyFn, StaticMembers } from "./util"
|
||||
|
||||
|
||||
export type TraitApplierSuperTag = "@thilawyn/traitify-ts/Super"
|
||||
@@ -49,7 +50,17 @@ export class TraitBuilder<
|
||||
}
|
||||
|
||||
extendAbstract<A extends Abstract>(
|
||||
_: (Super: AbstractClass<Implements<SuperExpression> & Abstract>) => AbstractClass<A, []>
|
||||
_: (
|
||||
Super: AbstractClass<
|
||||
Pipe<SuperExpression, [
|
||||
TraitExpression.TraitsFn,
|
||||
Tuples.Map<Trait.OwnAbstractFn>,
|
||||
Tuples.Append<Abstract>,
|
||||
ExtendFn,
|
||||
SimplifyFn,
|
||||
]>
|
||||
>
|
||||
) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
@@ -69,7 +80,15 @@ export class TraitBuilder<
|
||||
}
|
||||
|
||||
extendStaticAbstract<A extends StaticAbstract>(
|
||||
_: (Super: AbstractClass<ImplementsStatic<SuperExpression> & StaticAbstract>) => AbstractClass<A, []>
|
||||
_: (Super: AbstractClass<
|
||||
Pipe<SuperExpression, [
|
||||
TraitExpression.TraitsFn,
|
||||
Tuples.Map<Trait.OwnStaticAbstractFn>,
|
||||
Tuples.Append<StaticAbstract>,
|
||||
ExtendFn,
|
||||
SimplifyFn,
|
||||
]>
|
||||
>) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
|
||||
Reference in New Issue
Block a user