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

175
Views
Deje que JSDoc infiera el tipo de retorno de la función genérica de alto orden según el parámetro opcional

Suponiendo la siguiente función:

 /** * @template T * @template U * @param { T } item * @param { function(T): U } [mapper = t => t] * @returns { U } */ function map(item, mapper = t => t) { return mapper(item); }

Espero que JSDoc pueda inferir el tipo de cada one y two en este fragmento:

 const one = map('123', parseInt); // should be `number` const two = map('123'); // should be `string`

Desafortunadamente, parece que, cuando no se proporciona la función de mapper opcional, el tipo resultante no se infiere y se supone que two es any , como se ilustra a continuación:

Sugerencias de JSDoc

Tenía la esperanza de que documentar el parámetro del mapper de mi función de map fuera opcional y tuviera un valor predeterminado (como se documenta aquí sería suficiente).

¿Qué me estoy perdiendo? ¡Seguro que debe ser posible!

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

0

La implementación adecuada de la inferencia de tipo JSDoc para la función de map es...

 /** * @template T * @template [U = T] * @param { T } item * @param { function(T): U } [mapper = t => t] * @returns { U } */ function map(item, mapper = t => t) { return mapper(item); }

La única diferencia está en la declaración de la plantilla de tipo de retorno U :

 /** @template U */

... necesita convertirse en:

 /** @template [U = T] */

Esto le permite a su sistema de inferencia de tipos comprender que el tipo genérico U , cuando no se puede inferir, debería ser equivalente por defecto a T .

Esto parece estar documentado solo en la referencia de TypeScript JSDoc . Parece funcionar, como se ilustra a continuación:

Sugerencias de JSDoc (como se esperaba)

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!