Great, Rohit. That's it. Thanks a lot.
Hi Werner,
Your #3 option is close, the PatternTest has to be applied to Blank.
PatternTest
Blank
Clear[f]; f[x_Integer, b : (_?BooleanQ) : True] := If[b, x, -x]; {f[1], f[1, False]} (* {1, -1} *)