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

151
Visualizações
Objeto `@typedef` personalizado o `undefined`

Estoy tratando de documentar adecuadamente un escenario que ocurre a lo largo de un programa en el que estoy trabajando. No estoy seguro de cómo expresar correctamente la resolución esperada de ciertas promesas. A continuación se muestra mi intento de burlarse de lo que está sucediendo.

Hay ciertas promesas de API, fuera del alcance del programa que estoy tratando de documentar. Mencioné esto porque documentar los métodos api no es una opción, sino que la variable que contiene los valores resueltos de esas promesas es donde me gustaría centrarme.

 // simplified example function apiMethod() { const fail = 0; const response = { error: fail ? "error message" : undefined, // undef if no errors success: fail ? undefined : [ // undef if errors present {key01: "val01", key02: 1, key03: {"subKey01": [1, 2, 3]}}, {key01: "val03", key02: 2, key03: {"subKey01": [4, 5, 6]}} ] }; return new Promise(resolve => setTimeout(() => resolve(response), 250)); }
 (async () => { /** * @typedef {object} thing * @property {string} key01 * @property {number} key02 * @property {{subKey02: string[]}} key03 */ /** * @type {Promise<{success: thing[]|undefined, error: string|undefined}>} */ const myVar = await apiMethod(); console.log(myVar.key01); })();

Esto parece funcionar bien en su mayoría, pero donde me quedo atascado es expresando que la propiedad de success podría no estar definida en ciertas circunstancias. En este momento, así es como se ve la información sobre herramientas de vscode al pasar el myVar ;

 const myVar: Promise<{ success: thing[]; error: string | undefined; }>

Tenga en cuenta lo undefined que falta para el éxito

Así es como se ve la información sobre herramientas de thing al pasar el mouse sobre la expresión @type :

 type thing = { key01: string; key02: number; key03: { subKey02: string[]; }; }

Preguntas:

  1. ¿Es posible expresar thing el success será una matriz de objetos o indefinidos ? Cuando uso typedef , no parece que pueda hacer esto.

  2. En este momento, solo parece posible ver la vista ampliada del objeto cuando se thing el cursor por @type thing Cuando myVar , simplemente muestra que el éxito será una serie de thing . ¿Es posible mostrar esta vista "explotada" de las thing al pasar myVar , mientras se sigue usando @typedef ?

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