diff --git a/src/trait.ts b/src/trait.ts index 6d5e5fc..71dbaeb 100644 --- a/src/trait.ts +++ b/src/trait.ts @@ -1,7 +1,7 @@ import { Fn } from "hotscript" import { AbstractClass, Class, Opaque } from "type-fest" -import { StaticMembers } from "./util" import { AbstractTag } from "." +import { StaticMembers } from "./util" type AddAbstractToImpl< @@ -97,7 +97,7 @@ export interface TraitInstanceFn extends Fn { export type TraitApplierSuperTag = "@thilawyn/traitify-ts/TraitApplierSuper" export type TraitApplier< - Abstract extends object, + Abstract extends {}, ImplWithAbstract extends Class, > = ( (Super: Opaque, TraitApplierSuperTag>) => ( @@ -109,10 +109,8 @@ export function trait< Abstract extends {}, ImplWithAbstract extends Class, >( - abstract: Opaque, - apply: (Super: Opaque, TraitApplierSuperTag>) => ( - Opaque - ), + abstract: Opaque, + apply: TraitApplier, ): Trait< Abstract, RemoveAbstractFromImpl