From 754a5dc4202a81e2cc49d6febafec66d1d2d91e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 29 Jan 2024 02:54:47 +0100 Subject: [PATCH] TraitImplInstance --- src/tests.ts | 4 ++-- src/trait.ts | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/tests.ts b/src/tests.ts index 8533832..e1f29af 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -1,5 +1,5 @@ import { Simplify } from "type-fest" -import { TraitAbstractMembers, TraitClass, TraitImpl, TraitInstance, expresses, trait } from "." +import { TraitAbstractMembers, TraitClass, TraitImpl, TraitImplInstance, TraitInstance, expresses, trait } from "." const PrintsHelloOnNew = trait()(Super => @@ -22,7 +22,7 @@ const Identifiable = () => ( ) -type Test = Simplify>>> +type Test = Simplify>>> const appliedIdentifiable = Identifiable().apply({} as any) diff --git a/src/trait.ts b/src/trait.ts index 6736755..46fddb8 100644 --- a/src/trait.ts +++ b/src/trait.ts @@ -54,6 +54,12 @@ export type TraitImpl = ( : never ) +export type TraitImplInstance = ( + T extends Trait + ? InstanceType + : never +) + export type TraitClass = ( T extends Trait ? AddAbstractMembersToImpl