Files
thilatrait/src/util/trait.ts
Julien Valverdé 82e75e4166
All checks were successful
continuous-integration/drone/push Build is passing
0.1.2 (#9)
Co-authored-by: Julien Valverdé <julien.valverde@mailo.com>
Reviewed-on: https://git.jvalver.de/Thilawyn/thilatrait/pulls/9
2024-01-27 23:40:18 +01:00

17 lines
484 B
TypeScript

import { Trait, TraitClass } from ".."
/**
* Represents an array of classes corresponding to the provided traits.
* @template Traits - An array of traits extending Trait<any>.
*/
export type TraitsClasses<Traits extends readonly Trait<any>[]> = (
Traits extends [infer T, ...infer Rest]
? T extends Trait<any>
? Rest extends Trait<any>[]
? [TraitClass<T>, ...TraitsClasses<Rest>]
: never
: never
: []
)