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

221
Visualizações
Cómo obtener mensajes de error de "propiedad faltante" con objetos vacíos (y por lo tanto sin sellar)

Entonces, tengo una API que toma un objeto de opciones, algo como esto:

 type Options = { pos: number }; function doTheThing(options: Options) { }

Ahora, si llamo a esto con cualquiera de los siguientes, aparece un bonito mensaje de error:

 doTheThing(); // requires another argument. doTheThing({ something: 20 }); // missing property "pos"

Excelente. Pero si paso un objeto vacío, Flow lo considerará "sin sellar" y, por lo tanto, no tendrá ningún problema con él:

 doTheThing({ }); // No error, would like it to say "pos" missing instead.

Entonces, traté de hacerlo exacto:

 type Options = {| pos: number |};

Ahora, me sale un error, pero no es muy agradable:

 doTheThing({ }); // Cannot call `doTheThing` with object literal bound to `options` because inexact object literal [1] is incompatible with exact `Options` [2].

Pero solo quiero que diga que falta "pos". Lo anterior es más complicado y solo te obliga a tener que leer la definición de Options para saber lo que se necesita. Quiero que le ofrezca la propiedad real que falta. Lo cual hará, tan pronto como ponga algo al azar allí:

 doTheThing({ x: 10 }); // Cannot call `doTheThing` with object literal bound to `options` because property `pos` is missing in object literal [1] but exists in `Options`

¿Hay alguna forma de que me dé ese mensaje de error en {} , en lugar del mensaje menos útil? Idealmente, a través de algún tipo de anotación adicional en el tipo y no alguna configuración de flujo global que apague los objetos no sellados o algo así.

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