Use Optional Parameters
Don’t write several overloads that differ only in trailing parameters:
/* WRONG */
interface Moment {
diff(b: MomentComparable): number;
diff(b: MomentComparable, unitOfTime: string): number;
diff(b: MomentComparable, unitOfTime: string, round: boolean): number;
}
Do use optional parameters whenever possible:
/* OK */
interface Moment {
diff(b: MomentComparable, unitOfTime?: string, round?: boolean): number;
}
Note that this collapsing should only occur when al