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

245
Views
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 answers
Answer question

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 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!