Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
Cómo detectar entradas de datos serializados no válidos con tipos

Incluso si el type MyRequest requiere el atributo ID , el process de la función puede declarar la variable de tipo MyRequest incluso si falta el atributo ID :

 export type MyRequest = { ID: string, Name?: string }; function process(jsonData:string) { try { let data: MyRequest = JSON.parse(jsonData); return data } catch (err) { console.log("Error:", err) } } let jsonData = JSON.stringify( { foo: "bar" } ); let result = process(jsonData); console.log(result);

¿Cómo editar el process de la función para que se equivoque si los datos de la cadena entrante no contienen el atributo de ID requerido por el type MyRequest ?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

JSON.parse es una función de JavaScript, su interfaz es TypeScript. JavaScript no tiene forma de interactuar con la interfaz en tiempo de ejecución para hacer cumplir que todas las propiedades en su interfaz existan durante el análisis, por lo que no puede producir un error en la forma en que presenta su ejemplo.

Para hacer esto, debe tener verificaciones de JavaScript que validen que su JSON analizado coincida con lo esperado. Algo como

 export type MyRequest = { ID: string, Name?: string }; function isMyRequest(json: any): json is MyRequest { return json && Object.prototype.hasOwnProperty.call(json, 'ID'); } function process(jsonData:string) { try { let data: MyRequest = JSON.parse(jsonData); if (!isMyRequest(data)) { throw new Error('invalid jsonData'); } return data; } catch (err) { console.log("Error:", err) } } let jsonData = JSON.stringify( { foo: "bar" } ); let result = process(jsonData); console.log(result);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda