TraitExpressionBuilder refactoring
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -76,7 +76,10 @@ export class TraitExpressionBuilder<
|
|||||||
>[]
|
>[]
|
||||||
>(
|
>(
|
||||||
...traits: T
|
...traits: T
|
||||||
) {
|
): TraitExpressionBuilder<
|
||||||
|
Superclass,
|
||||||
|
TraitExpressionBuilder.ExpressesReturnTypeTraits<Traits, T>
|
||||||
|
> {
|
||||||
return new this.constructor(
|
return new this.constructor(
|
||||||
this.expressionSuperclass,
|
this.expressionSuperclass,
|
||||||
|
|
||||||
@@ -99,7 +102,10 @@ export class TraitExpressionBuilder<
|
|||||||
>[]
|
>[]
|
||||||
>(
|
>(
|
||||||
...traits: T
|
...traits: T
|
||||||
) {
|
): TraitExpressionBuilder<
|
||||||
|
Superclass,
|
||||||
|
TraitExpressionBuilder.ExpressesFirstReturnTypeTraits<Traits, T>
|
||||||
|
> {
|
||||||
return new this.constructor(
|
return new this.constructor(
|
||||||
this.expressionSuperclass,
|
this.expressionSuperclass,
|
||||||
|
|
||||||
@@ -166,6 +172,26 @@ export namespace TraitExpressionBuilder {
|
|||||||
: false
|
: false
|
||||||
)
|
)
|
||||||
|
|
||||||
|
export type ExpressesReturnTypeTraits<
|
||||||
|
Traits extends readonly Trait<any, any, any, any>[],
|
||||||
|
T extends readonly Trait<any, any, any, any>[],
|
||||||
|
> = (
|
||||||
|
TraitExpressionBuilder.TraitsUniq<[
|
||||||
|
...Traits,
|
||||||
|
...TraitExpressionBuilder.SpreadSupertraits<T>,
|
||||||
|
]>
|
||||||
|
)
|
||||||
|
|
||||||
|
export type ExpressesFirstReturnTypeTraits<
|
||||||
|
Traits extends readonly Trait<any, any, any, any>[],
|
||||||
|
T extends readonly Trait<any, any, any, any>[],
|
||||||
|
> = (
|
||||||
|
TraitExpressionBuilder.TraitsUniq<[
|
||||||
|
...TraitExpressionBuilder.SpreadSupertraits<T>,
|
||||||
|
...Traits,
|
||||||
|
]>
|
||||||
|
)
|
||||||
|
|
||||||
export type BuildTraitExpression<
|
export type BuildTraitExpression<
|
||||||
Superclass extends AbstractClass<object>,
|
Superclass extends AbstractClass<object>,
|
||||||
Traits extends Trait<any, any, any, any>[],
|
Traits extends Trait<any, any, any, any>[],
|
||||||
|
|||||||
Reference in New Issue
Block a user