Probably a duplicate, but I cannot find one. ```ts function foo(p1: string): void; function foo(p1: number, p2: boolean): void; function foo(p1, p2) { // p1: string | number; // p2: boolean | undefined; } ``` If there could be constraints among parameters via type guards, it would be awesome.