From fe667e87fe55ef3aaf9d664d130e55a506c8c061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Thu, 15 Feb 2024 21:00:12 +0100 Subject: [PATCH] TraitExpression work --- src/TraitBuilder.ts | 16 ++++++++-------- src/TraitExpression.ts | 8 ++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/TraitBuilder.ts b/src/TraitBuilder.ts index a825162..b19aa8b 100644 --- a/src/TraitBuilder.ts +++ b/src/TraitBuilder.ts @@ -5,7 +5,7 @@ import { TraitExpression } from "./TraitExpression" import { ExtendFn, SimplifyFn, StaticMembers } from "./util" -type SuperAbstract = ( +type ExtendAbstractSuper = ( Pipe, @@ -15,7 +15,7 @@ type SuperAbstract = ( ]> ) -type SuperStaticAbstract = ( +type ExtendStaticAbstractSuper = ( Pipe, @@ -61,7 +61,7 @@ export class TraitBuilder< private readonly traitApply: (Super: AbstractClass) => ImplClass, ) {} - abstract>() { + abstract>() { return new TraitBuilder( this.traitSuperExpression, {} as A, @@ -70,10 +70,10 @@ export class TraitBuilder< ) } - extendAbstract>( + extendAbstract>( _: ( Super: AbstractClass< - SuperAbstract + ExtendAbstractSuper > ) => AbstractClass ) { @@ -85,7 +85,7 @@ export class TraitBuilder< ) } - staticAbstract>() { + staticAbstract>() { return new TraitBuilder( this.traitSuperExpression, this.traitAbstract, @@ -94,9 +94,9 @@ export class TraitBuilder< ) } - extendStaticAbstract>( + extendStaticAbstract>( _: (Super: AbstractClass< - SuperStaticAbstract + ExtendStaticAbstractSuper >) => AbstractClass ) { return new TraitBuilder( diff --git a/src/TraitExpression.ts b/src/TraitExpression.ts index 96efaab..0d0147e 100644 --- a/src/TraitExpression.ts +++ b/src/TraitExpression.ts @@ -98,3 +98,11 @@ export type ImplementsStatic> = ( SimplifyFn, ]> ) + +export type TraitExpressionClass> = ( + +) + +export type TraitExpressionInstance> = ( + +)