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.