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