Essentially what I am trying to accomplish is this
interface Clonable { clone(): this; } class BaseClass implements Clonable { clone() { return new t