Equivalencia desde Kotlin
Comportamiento como valor
DirectaTypeScript conserva el modelo de funciones como valores de JavaScript y permite describir sus parámetros y resultado con tipos estáticos.
Referencia Kotlin: Declarar una operación reutilizable y recibir otra operación como valor.
- Mecanismo
- Funciones declaradas o expresiones flecha con un tipo de función explícito.
- Idea conservada
- La transformación se recibe como valor y se invoca dos veces sobre el mismo argumento; quien la declara no necesita conocer
applyTwice. - Riesgo de diseño
- Usar el tipo global
Function, que pierde la firma concreta y devuelveanyal invocar.
- Recomendación
- Escribe una firma de función explícita en las fronteras de una API.
- Convención del curso
- En este curso, anota parámetros y retorno en las funciones exportadas; deja que el contexto infiera los tipos locales.
- Mecanismo del lenguaje
- Funciones declaradas y expresiones flecha con un tipo de función.
Diferencias relevantes
- Las funciones se emiten como JavaScript y su comprobación de tipos ocurre antes de ejecutar.
- El tipo
(number) => numberno comprueba por sí mismo efectos ni pureza.
La firma de la transformación se expresa como un tipo de función.
fun applyTwice(
value: Int,
transform: (Int) -> Int,
): Int = transform(transform(value))
val result = applyTwice(3) { it + 1 } // 5function applyTwice(value: number, transform: (value: number) => number): number {
return transform(transform(value));
}
const result = applyTwice(3, (number) => number + 1); // 5Otra forma de recibir comportamiento: un predicado para filtrar un arreglo.
const keep = (xs: number[], p: (x: number) => boolean) => xs.filter(p);