0.1.4 #4

Merged
Thilawyn merged 68 commits from next into master 2024-02-20 01:39:38 +01:00
Showing only changes of commit 45ec2dd0e3 - Show all commits

View File

@@ -1,8 +1,9 @@
import { AbstractClass } from "type-fest"
import { Trait, TraitClass } from "./Trait" import { Trait, TraitClass } from "./Trait"
import { trait } from "./TraitBuilder" import { trait } from "./TraitBuilder"
import { Implements, ImplementsStatic, TraitExpression } from "./TraitExpression" import { Implements, ImplementsStatic, TraitExpression } from "./TraitExpression"
import { expression } from "./TraitExpressionBuilder" import { expression } from "./TraitExpressionBuilder"
import { ExtendPlain } from "./util" import { ExtendPlain, StaticMembers } from "./util"
const PrintsHelloOnNew = trait const PrintsHelloOnNew = trait
@@ -85,14 +86,17 @@ console.log(new User())
type ExpectsObjectArray<T extends readonly object[]> = T type ExpectsObjectArray<T extends readonly object[]> = T
type Maps<T extends readonly any[]> = { type MapStaticMembers<T extends readonly any[]> = {
[K in keyof T]: T[K] [K in keyof T]: StaticMembers<T[K]>
} }
type MapTraits<Exp extends TraitExpression<any, any>> = ( type MapClasses<Classes extends AbstractClass<any>[]> = (
ExpectsObjectArray< ExpectsObjectArray<
Maps< MapStaticMembers<
Classes
> >
> >
) )
type Output = MapClasses<[typeof User]>