Funciones puras
Son funciones que producen un mismo output para un mismo input. Serán aquellas retornan un resultado predecible en base a los parametros que nosotros le pasemos.
Estas deben cumplir con dos requisitos basicos:
Dado unos parámetros de entrada de idéntico valor, la función siempre devolverá el mismo resultado.
El cómputo de la función, su lógica, no implica ningún efecto observable colateral fuera de ella (inmutabilidad de los parametros).
La funcion sayGreeting() es una funcion pura ya que solo con leerla sabemos que va a retornar "Hello" seguido del nombre que le pasemos por parámetro.
function sayGreeting(name) {
return `Hello ${name}`;
}
Pero si revisamos el siguiente ejemplo
function whatTimeIsIt(name: string) : string {
const time = new Date().toLocaleTimeString();
return "Hello" + name + ", it's" + time ;
}
Ya no seria una funcion pura, puesto que requiere de un elemento externo ademas de sus parametro para devolver el resultado, el cual NO devuelve el mismo output para un mismo input y por consecuencia NO es predecible.
Otro ejemplo muy común de una funcion pura son los action creators (acciones despachadas que son interceptadas por redux para realizar una acción en el store).
Supongamos que queremos crear una tarea de un to do list
interface Task {
title: string;
description: string
}
const addTaskAction = (payload: Task) => ({
type: "addTask",
payload
})
La funcion addTaskAction() es una funcion pura ya que retorna un objeto que describe algo especifico que va suceder y es predecible.
Top comments (0)