Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

250
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda