🥇 Classes, Arrow Functions (funciones tipo flecha)

Si tienes una función cuyo que frecuentemente pierde el contexto de su valor this, puede tener sentido utilizar una arrow function (función tipo flecha) en lugar de la función habitual.

class MiClase {
  nombre = "MiClase";

  getNombre = () => {
    return this.nombre;
  };
}

const miClase: MiClase = new MiClase();

const obj: MiClase = {
  nombre: "obj",
  getNombre: miClase.getNombre,
};

console.log(obj.getNombre());
MiClase

El uso de arrow functions viene con algunas ventajas.

  • El valor de this esta garantizado para ser el correcto en tiempo de ejecución, aun cuando el código no ha sido verificado con TypeScript.
  • Esto usualmente utiliza mas memoria, debido a que cada clase tendra su propia copia de cada una de las funciones definidas de esta forma.
  • No se puede utilizar super.getNombre en una clase derivada.