Interfaz de función de typcript

¿Por qué TypScript no me advierte que la función que estoy definiendo no coincide con la declaración de la interfaz, pero sí me advierte si intento invocar la función?

interface IFormatter {
    (data: string, toUpper : boolean): string;
};

//Compiler does not flag error here.
var upperCaseFormatter: IFormatter = function (data: string) {
    return data.toUpperCase();
}  

upperCaseFormatter("test"); //but does flag an error here.

Respuestas a la pregunta(1)

Su respuesta a la pregunta