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

116
Views
¿Cómo puedo especificar tipos en una función de conversión de caja de camello a serpiente?

Tengo una función que convierte el caso de una cadena, matriz u objeto de destino de un caso de camello a un caso de serpiente.

 convertCamelToSnake (target) { // Complex logic to convert target depending on what type it is return convertedTarget }

Quiero especificar tipos en esta función usando un Genérico así:

 convertCamelToSnake <T>(target: T):T { // Complex logic to convert target depending on what type it is return convertedTarget }

Esto funciona para cadenas y arreglos, pero convertimos las claves de un objeto dado en formato serpiente. Pero mecanografiado no se da cuenta de esto y asume que las claves siguen siendo las mismas porque declaramos que estamos devolviendo T .

¿Cómo puedo conservar la capacidad de saber el tipo que se devuelve? Es decir, cadena, matriz, objeto, dejando las claves del diccionario ambiguas.

Por ejemplo, digamos que pasamos:

 const a = { helloWorld: "bob", age: 21 } a = convertCamelToSnake(a); // { hello_world: "bob", age: 21 }; a.hello_world; // Property 'hello_world' does not exist on type

¿Cómo podemos hacer que se nos permita acceder a la propiedad hello_world después de convertir el objeto, y al mismo tiempo poder inferir que el valor de retorno es de tipo object (ya que, por ejemplo, también podríamos pasar una matriz a esta función )?

about 4 years ago · Juan Pablo Isaza
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!