Funciones, constructor signature (firma de constructores) Funciones, constructor signature (firma de constructores)

šŸ„‡ Funciones, constructor signature (firma de constructores)

Las funciones de JavaScript pueden ser tambiƩn invocadas con el operador new. TypeScript hace referencia a estos operadores como constructors (constructores) porque estos sirven para crear un objeto. Por ello se puede escribir un constructor signature (firma para el constructor) aƱadiendo la palabra new enfrente de la firma.

interface Transporte {
  nombre: string;
}

class Caballo implements Transporte {
  constructor(public nombre: string) {}
}

class Automovil implements Transporte {
  constructor(public nombre: string) {}
}

type ConstructorDeTransporte = {
  new (nombre: string): Transporte;
};

function construirTransporte(ctr: ConstructorDeTransporte, nombre: string) {
  return new ctr(nombre);
}

const miCaballo = construirTransporte(Caballo, "Paso Fino");
const miAutomovil = construirTransporte(Automovil, "Toyota");

console.log("Mi caballo se llama " + miCaballo.nombre);
console.log("Mi automovil es un " + miAutomovil.nombre);

Salida…

Mi caballo se llama Paso Fino
Mi automovil es un Toyota

En el ejemplo hemos construido una funciĆ³n a la cual se le pasa un objeto que posee un constructor como parte de su firma. En este caso dicho constructor debe retornar un objeto que implemente la interface Transporte.

Funciones, call signature (firma de funciones) Funciones, generics (genericos)
comments powered by Disqus