So I wish I could use an alias to an ugly type that looks like this:
Maybe, Problem>>[]
Something
A poor man's solution is to declare a dummy variable (e.g. t) with the desired type and use typeof t instead of the long type expression:
t
typeof t
var t: { (x: number, f: { (foo: string, bar:boolean): void }): void }; var f: typeof t; var g: typeof t;