0.1.2 (#9)
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
This commit was merged in pull request #9.
This commit is contained in:
Julien Valverdé
2024-01-27 23:40:18 +01:00
parent d457fb8aad
commit 82e75e4166
12 changed files with 385 additions and 521 deletions

16
src/util/trait.ts Normal file
View File

@@ -0,0 +1,16 @@
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
: []
)