All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: Julien Valverdé <julien.valverde@mailo.com> Reviewed-on: https://git.jvalver.de/Thilawyn/thilatrait/pulls/9
17 lines
484 B
TypeScript
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
|
|
: []
|
|
)
|