If I return a 'custom' type of an interface and I use typeof then I get the orginal type (I understand why, I read it), but I can get the custom type?
If I have the following:
interface X{
A:()=>Omit<typeof this, "A">,
B:()=>Omit<typeof this, "B">,
C:()=>Omit<typeof this, "C">,
}
let X : X = {...}
If want to make the following possible:
I.e. 1: X.A().B().C()
I.e. 2: X.C().A().B()
But not: X.A().B().A() (which currently is possible)