0.1.12 #12
14
src/Trait.ts
14
src/Trait.ts
@@ -74,43 +74,43 @@ export namespace Trait {
|
|||||||
|
|
||||||
export namespace TraitTuple {
|
export namespace TraitTuple {
|
||||||
export type MapAbstract<T> = {
|
export type MapAbstract<T> = {
|
||||||
[K in keyof T]: K extends keyof []
|
[K in keyof T]: K extends keyof readonly []
|
||||||
? T[K]
|
? T[K]
|
||||||
: Trait.Abstract<T[K]>
|
: Trait.Abstract<T[K]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MapStaticAbstract<T> = {
|
export type MapStaticAbstract<T> = {
|
||||||
[K in keyof T]: K extends keyof []
|
[K in keyof T]: K extends keyof readonly []
|
||||||
? T[K]
|
? T[K]
|
||||||
: Trait.StaticAbstract<T[K]>
|
: Trait.StaticAbstract<T[K]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MapImplClass<T> = {
|
export type MapImplClass<T> = {
|
||||||
[K in keyof T]: K extends keyof []
|
[K in keyof T]: K extends keyof readonly []
|
||||||
? T[K]
|
? T[K]
|
||||||
: Trait.ImplClass<T[K]>
|
: Trait.ImplClass<T[K]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MapImplInstance<T> = {
|
export type MapImplInstance<T> = {
|
||||||
[K in keyof T]: K extends keyof []
|
[K in keyof T]: K extends keyof readonly []
|
||||||
? T[K]
|
? T[K]
|
||||||
: Trait.ImplInstance<T[K]>
|
: Trait.ImplInstance<T[K]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MapImplStaticMembers<T> = {
|
export type MapImplStaticMembers<T> = {
|
||||||
[K in keyof T]: K extends keyof []
|
[K in keyof T]: K extends keyof readonly []
|
||||||
? T[K]
|
? T[K]
|
||||||
: Trait.ImplStaticMembers<T[K]>
|
: Trait.ImplStaticMembers<T[K]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MapInstance<T> = {
|
export type MapInstance<T> = {
|
||||||
[K in keyof T]: K extends keyof []
|
[K in keyof T]: K extends keyof readonly []
|
||||||
? T[K]
|
? T[K]
|
||||||
: Trait.Instance<T[K]>
|
: Trait.Instance<T[K]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MapStaticMembers<T> = {
|
export type MapStaticMembers<T> = {
|
||||||
[K in keyof T]: K extends keyof []
|
[K in keyof T]: K extends keyof readonly []
|
||||||
? T[K]
|
? T[K]
|
||||||
: Trait.Static<T[K]>
|
: Trait.Static<T[K]>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ export namespace TraitExpressionBuilder {
|
|||||||
Traits extends readonly Trait<any, any, any, any>[],
|
Traits extends readonly Trait<any, any, any, any>[],
|
||||||
T extends readonly Trait<any, any, any, any>[],
|
T extends readonly Trait<any, any, any, any>[],
|
||||||
> = (
|
> = (
|
||||||
TraitExpressionBuilder.TraitsUniq<[
|
TraitExpressionBuilder.TraitsUniq<readonly [
|
||||||
...Traits,
|
...Traits,
|
||||||
...TraitExpressionBuilder.SpreadSupertraits<T>,
|
...TraitExpressionBuilder.SpreadSupertraits<T>,
|
||||||
]>
|
]>
|
||||||
@@ -186,7 +186,7 @@ export namespace TraitExpressionBuilder {
|
|||||||
Traits extends readonly Trait<any, any, any, any>[],
|
Traits extends readonly Trait<any, any, any, any>[],
|
||||||
T extends readonly Trait<any, any, any, any>[],
|
T extends readonly Trait<any, any, any, any>[],
|
||||||
> = (
|
> = (
|
||||||
TraitExpressionBuilder.TraitsUniq<[
|
TraitExpressionBuilder.TraitsUniq<readonly [
|
||||||
...TraitExpressionBuilder.SpreadSupertraits<T>,
|
...TraitExpressionBuilder.SpreadSupertraits<T>,
|
||||||
...Traits,
|
...Traits,
|
||||||
]>
|
]>
|
||||||
|
|||||||
Reference in New Issue
Block a user