textos teclado rapido para mecanografia lecciones juegos gratis escribir ejercicios digitacion curso computarizada computadora completo interface typescript

interface - teclado - mecanografia ejercicios



Interfaz de función de mecanografía (1)

La interfaz garantiza que todos los llamantes de las funciones que implementan la interfaz proporcionen los argumentos necesarios: data y toUpper .

Dado que TypeScript comprende que a JavaScript no le importa si pasa argumentos que no se utilizan, esto lo permite hábilmente en las implementaciones.

¿Por qué está bien? Porque significa que puede sustituir cualquier implementación de la interfaz sin afectar el código de llamada.

Ejemplo: puede sustituir la implementación IFormatter y el código funciona.

interface IFormatter { (data: string, toUpper : bool): string; }; var upperCaseFormatter: IFormatter = function (data: string) { return data.toUpperCase(); } var variableCaseFormatter: IFormatter = function (data: string, toUpper: bool) { if (toUpper) { return data.toUpperCase(); } return data.toLowerCase(); } // Switch between these at will //var formatter = upperCaseFormatter; var formatter = variableCaseFormatter; formatter("test", true);

Si TypeScript no hiciera esto, su upperCaseFormatter tendría que tener un parámetro llamado toUpper que no se usara en ninguna parte de la función, lo que hace que el código sea menos legible.

¿Por qué Typescript no me advierte que la función que estoy definiendo no coincide con la declaración de interfaz, pero sí me avisa 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.