Classes, this paramemeter (el par谩metro this) Classes, this paramemeter (el par谩metro this)

馃 Classes, this paramemeter (el par谩metro this)

Dentro de un m茅todo o una funci贸n, un par谩metro inicial llamado this tiene un significado especial en TypeScript. Estos par谩metros son eliminados durante la compilaci贸n.

function miFuncion(this: string, x: number) {
  // ... codigo de la funcion
}

La anterior funci贸n es transformada al siguiente c贸digo JavaScript.

function miFuncion(x) {
    // codigo de la funcion
}

TypeScript verifica que la llamada a la funci贸n con el par谩metro this se realice dentro de un contexto apropiado. En lugar de utilizar una arrow function (funci贸n tipo flecha), podemos agregar e par谩metro this a las definiciones de los m茅todos para obligar a que estos m茅todos sean invocados de manera correcta.

class MiClase {
  nombre = "MiClase";

  getNombre(this: MiClase) {
    return this.nombre;
  }
}

const miClase: MiClase = new MiClase();
const r = miClase.getNombre(miClase);
console.log(r()); // <- esto generar谩 un error

Error generado…

The 'this' context of type 'void' is not assignable to method's 'this' of type 'MiClase'

Este m茅todo toma un enfoque distinto al de los arrow functions.

Classes, Arrow Functions (funciones tipo flecha) Classes, this types (tipos "this")
comments powered by Disqus