From 56e4af73023b9dcdf243948c66f0645144a195e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 4 Feb 2024 22:58:42 +0100 Subject: [PATCH] Super -> Superclass --- src/TraitExpression.ts | 26 +++++++++++++------------- src/tests.ts | 4 +++- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/TraitExpression.ts b/src/TraitExpression.ts index 1296550..e24cb6d 100644 --- a/src/TraitExpression.ts +++ b/src/TraitExpression.ts @@ -7,12 +7,12 @@ import { ExtendFn, SimplifyFn, StaticMembersFn } from "./util" export class TraitExpressionNullSuperclass {} export class TraitExpression< - Super extends AbstractClass<{}>, - OwnTraits extends Trait[], - AllTraits extends Trait[], + Superclass extends AbstractClass<{}>, + OwnTraits extends Trait[], + AllTraits extends Trait[], > { constructor( - readonly superclass: Super, + readonly superclass: Superclass, readonly ownTraits: OwnTraits, readonly allTraits: AllTraits, ) {} @@ -20,18 +20,18 @@ export class TraitExpression< get extends(): ( AbstractClass< Pipe<[ - InstanceType, + InstanceType, ...Call, OwnTraits>, ], [ ExtendFn, SimplifyFn, ]>, - ConstructorParameters + ConstructorParameters > & Pipe<[ - Super, + Superclass, ...Call, OwnTraits>, ], [ Tuples.Map, @@ -41,7 +41,7 @@ export class TraitExpression< ) { return this.allTraits.reduce( (previous, trait) => trait.apply(previous), - this.superclass as Opaque, + this.superclass as Opaque, ) as any } @@ -62,13 +62,13 @@ export class TraitExpression< } export namespace TraitExpression { - export type Super = ( - T extends TraitExpression - ? Super + export type Superclass = ( + T extends TraitExpression + ? Superclass : never ) - export interface SuperFn extends Fn { - return: TraitExpression.Super + export interface SuperclassFn extends Fn { + return: TraitExpression.Superclass } export type OwnTraits = ( diff --git a/src/tests.ts b/src/tests.ts index e225d7f..1bc7e75 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -1,4 +1,4 @@ -import { Implements, Trait, abstract, expression, trait } from "." +import { Implements, Trait, TraitExpression, abstract, expression, trait } from "." const PrintsHelloOnNew = trait( @@ -57,6 +57,8 @@ const builder = expression StatefulSubscription, ) +type T = TraitExpression.OwnTraits + const exp = builder.get() type Abs = Implements