diff --git a/src/index.ts b/src/index.ts index fc70958..ea9832d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,7 +5,9 @@ import { AbstractClass, AbstractConstructor, Opaque, UnionToIntersection } from * Represents the static members of a class. * @template C - The class type. */ -export type StaticMembers = Pick +export type StaticMembers = { + [Key in keyof C as Key extends "prototype" ? never : Key]: C[Key] +} /** diff --git a/src/tests.ts b/src/tests.ts index 37e9412..30e12c5 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -1,4 +1,4 @@ -import { expresses, trait } from "." +import { expresses, extendsAndExpresses, trait } from "." const Identifiable = () => @@ -21,8 +21,13 @@ const Identifiable = () => const ImplementsIdentifiable = (defaultID: ID) => trait(Parent => { - abstract class ImplementsIdentifiable extends Identifiable()(Parent) { + abstract class ImplementsIdentifiable extends extendsAndExpresses(Parent, [Identifiable()]) { id: ID = defaultID + + constructor(...args: any[]) { + super(...args) + console.log("ImplementsIdentifiable constructor") + } } return ImplementsIdentifiable