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

277
Views
quicktype-core: generación de interfaces TypeScript que permiten propiedades desconocidas adicionales al analizar, sin lanzar una excepción

Estoy usando el paquete NPM: https://www.npmjs.com/package/quicktype-core para generar interfaces TypeScript a partir de muestras JSON.

Aquí hay un ejemplo simple del código que genera las interfaces:

 const sample_object = { prop_a: 'value A', prop_b: 'value B', }; const jsonInput = jsonInputForTargetLanguage('typescript'); await jsonInput.addSource({ name: 'MyNewInterface', samples: [JSON.stringify(sample_object)], }); const inputData = new InputData(); inputData.addInput(jsonInput); const result = await quicktype({ inputData, lang: 'typescript', inferDateTimes: false, alphabetizeProperties: true, inferEnums: false, rendererOptions: {}, }); // Display generated interface: const generated_code = result.lines.join('\n'); console.log(generated_code);

La interfaz que genera funciona al analizar nuevos datos que SOLO contienen las propiedades que conoce. Pero si intenta analizar algunos datos que contienen campos/propiedades adicionales, arroja una excepción, por ejemplo, datos de muestra:

 const sample_object = { prop_a: 'value A', prop_b: 'value B', new_extra_property: 'value for new_extra_property', };

Lanzará una excepción:

 Invalid value "value for new_extra_property" for type false

¿Cómo puedo configurar quicktype-core para generar código que NO generará excepciones cuando los datos contengan campos desconocidos adicionales?

Intenté rastrear el código fuente de tipo rápido y encontré un par de rendererOptions llamadas runtimeTypecheckIgnoreUnknownProperties additionalProperties pero tratar de establecerlas como verdaderas o como una cadena no hace ninguna diferencia en el código que genera.

Establecer en verdadero (en realidad da errores de TypeScript para el código, aunque muchas opciones renderizadas de opción de tipo rápido son en realidad bools, y han funcionado para otras configuraciones):

 const result = await quicktype({ inputData, lang: 'typescript', inferDateTimes: false, alphabetizeProperties: true, inferEnums: false, rendererOptions: { additionalProperties: true, runtimeTypecheckIgnoreUnknownProperties: true, }, });

Establecer una cadena (mantiene el control de TypeScript feliz):

 const result = await quicktype({ inputData, lang: 'typescript', inferDateTimes: false, alphabetizeProperties: true, inferEnums: false, rendererOptions: { additionalProperties: 'string', runtimeTypecheckIgnoreUnknownProperties: 'string', }, });
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!