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

244
Views
¿Hay alguna forma en mecanografiado de pasar un parámetro opcional a un constructor solo si existe?

Tengo un objeto que tiene un constructor con un parámetro opcional como este:

 class example{ constructor(a: string,b: string,c: string,d?:string){ //... } }

Esta clase se instanciará dentro de otro método. Como esto:

 function createExample(a: string,b: string,c: string,d?:string){ return new example(a,b,c,d) }

Pero solo quiero pasar el parámetro "d" si se recibió la función createExample(). ¿Hay alguna manera en javascript/mecanografiado para hacer esto? Algo como:

Quiero pasar el parámetro d solo si existe, y espero no tener que hacer un if que verifique esto, porque si tengo más parámetros opcionales se puede complicar. ¿Hay alguna manera en javascript/mecanografiado para hacer esto? Algo como:

 function createExample(a: string,b: string,c: string,d?:string){ return new example(a,b,c,d?) }

¿O debería dejar la instancia con el parámetro "d" normal y, en caso de que no esté definido, debería pasarse como indefinido?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si define el tipo para D como potencialmente indefinido, simplemente puede pasarlo

 class Example { constructor(a: string, b: string, c: string, d?: string) { // ... } } const A = ""; const B = ""; const C = ""; let D: string | undefined; if (someCondition) { D = "d"; } const ex = new Example(A, B, C, D);
about 4 years ago · Juan Pablo Isaza Report

0

¿O debería dejar la instancia con el parámetro "d" normal y, en caso de que no esté definido, debería pasarse como indefinido?

Sí, exactamente esto. JavaScript trata los argumentos faltantes y los undefined que se pasan como un argumento del mismo 1 : ambos terminan con un parámetro undefined o predeterminado. Así que es tan simple como

 function createExample(a: string, b: string, c: string, d?: string) { return new Example(a, b, c, d); }

Si realmente te importa, puedes usar la sintaxis extendida con una matriz:

 function createExample(...args: [a: string, b: string, c: string, d?: string]) { return new Example(...args); }

1: excepto para la sintaxis de parámetros arguments.length y rest

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!