But with pattern matching, you almost never need to use "If[]" anyways:
fib[0] := 0
fib[1] := 1
fib[n_ /; n < 2] := Undefined
fib[n_Integer] := fib[n - 1] + fib[n - 2]
fib[8]
(* Output: 21 *)
fib /@ Range[10]
(* Output: {1, 1, 2, 3, 5, 8, 13, 21, 34, 55} *)
fib[-1]
(* Output: Undefined *)
fib["a string"]
(* Output: fib["a string"] *)