Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

205
Views
Parámetro de función en el constructor

Tengo una clase que toma como parámetro una función que se ajusta a una interfaz. La clase luego llama a esta función con una entrada dada.

En la interfaz siempre se requiere una entrada, pero también se permiten otros parámetros, aunque son opcionales. Quiero proporcionar estos parámetros adicionales al crear una instancia. ¿Cómo debo hacer esto?

Consideré agregar un parámetro args en el constructor que se aplicará a la llamada de función, pero esto parece feo y separa los parámetros de la función. También consideré crear una función intermedia que toma el único parámetro input y lo pasa a la función con args , pero nuevamente esto parece complicado: me gustaría encapsular todo dentro de la clase y proporcionar toda la configuración de la instancia resultante cuando sea construido.

 interface IThingAction { (input: string, ...args: any[]): boolean; } let printInput: IThingAction = (input: string) => { console.log(input); } let repeatInput: IThingAction = (input: string, iterations: number) => { for (var i = 0; i < iterations, i++) { console.log(input); } } class Thing { action: IThingAction; constructor(action: IThingAction) { this.action = action; } doAction(input: string): boolean { return this.action(input); } } let speaker = new Thing(printInput); let echoer = new Thing(repeatInput); // I'd like to provide extra parameters here, eg (3) speaker.doAction('hello'); // hello echoer.doAction('-o'); // -o // -o // -o
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Una de las soluciones es cambiar el repeatInput se convierte en un creador de funciones como se muestra a continuación:

 type IThingAction = (input: string) => boolean; const makeRepeatInput = (iterations: number): IThingAction => (input) => { for (var i = 0; i < iterations; i++) { console.log(input); } } let echoer = new Thing(makeRepeatInput(3));
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!