Moved TraitExpression helpers to namespace
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Julien Valverdé
2024-02-04 22:50:13 +01:00
parent 8d2cb90f52
commit f6f56b74cd
3 changed files with 31 additions and 29 deletions

View File

@@ -61,31 +61,33 @@ export class TraitExpression<
}
}
export type TraitExpressionSuper<T> = (
T extends TraitExpression<infer Super, any, any>
? Super
: never
)
export interface TraitExpressionSuperFn extends Fn {
return: TraitExpressionSuper<this["arg0"]>
}
export namespace TraitExpression {
export type Super<T> = (
T extends TraitExpression<infer Super, any, any>
? Super
: never
)
export interface SuperFn extends Fn {
return: TraitExpression.Super<this["arg0"]>
}
export type TraitExpressionOwnTraits<T> = (
T extends TraitExpression<any, infer OwnTraits, any>
? OwnTraits
: never
)
export interface TraitExpressionOwnTraitsFn extends Fn {
return: TraitExpressionOwnTraits<this["arg0"]>
}
export type OwnTraits<T> = (
T extends TraitExpression<any, infer OwnTraits, any>
? OwnTraits
: never
)
export interface OwnTraitsFn extends Fn {
return: TraitExpression.OwnTraits<this["arg0"]>
}
export type TraitExpressionAllTraits<T> = (
T extends TraitExpression<any, any, infer AllTraits>
? AllTraits
: never
)
export interface TraitExpressionAllTraitsFn extends Fn {
return: TraitExpressionAllTraits<this["arg0"]>
export type AllTraits<T> = (
T extends TraitExpression<any, any, infer AllTraits>
? AllTraits
: never
)
export interface AllTraitsFn extends Fn {
return: TraitExpression.AllTraits<this["arg0"]>
}
}