Function Types
Function types inherit the Function class.
// parameterless
type F1 = () => void;
// with required parameter
type F2 = (a: Number) => void;
// with optional parameter
type F3 = (a?: Number) => void;
// with rest parameter
type F4 = (...a: [Number]) => void;
Parameter Names
A type (a: T) => void differs from a type (_: T) => void because the parameter names differ.