traceableClass( name: string,): <T extends new (...args: any[]) => object>( OriginalConstructor: T,) => { prototype: __type<any>; new (...args: any[]): __type<T> } & T Returns <T extends new (...args: any[]) => object>(
OriginalConstructor: T,
) => { prototype: __type<any>; new (...args: any[]): __type<T> } & T