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

325
Visualizações
Tipo de rechazo de promesa mecanografiada

¿Cómo configuro el tipo de rechazo de mi promesa? Digamos que sí:

 const start = (): Promise<string> => { return new Promise((resolve, reject) => { if (someCondition) { resolve('correct!'); } else { reject(-1); } }); }

Digamos que quiero rechazar con un número. Pero no puedo establecer el tipo; Puedo pasar lo que quiera al reject aquí.

Además, al usar esta promesa, quiero tener un error de compilación si uso el tipo de respuesta de rechazo incorrectamente.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Como se explica en este número , Promise no tiene diferentes tipos de promesas cumplidas y rechazadas. reject acepta any argumento que no afecte el tipo de una promesa.

Actualmente Promise no se puede escribir mejor. Esto resulta del hecho de que una promesa puede ser rechazada throw dentro de then o catch (esta es una forma preferible de rechazar una promesa existente), y esto no puede ser manejado por el sistema de escritura; Además, TypeScript tampoco tiene tipos específicos de excepción, excepto never .

over 4 years ago · Santiago Trujillo Relatório

0

Debido a que no hay forma de establecer el tipo de error en algunos casos, como Promesa, o lanzamientos de excepción, podemos trabajar con errores en estilo oxidado:

 // Result<T, E> is the type used for returning and propagating errors. // It is an sum type with the variants, // Ok<T>, representing success and containing a value, and // Err<E>, representing error and containing an error value. export type Ok<T> = { _tag: "Ok"; ok: T }; export type Err<E> = { _tag: "Err"; err: E }; export type Result<T, E> = Ok<T> | Err<E>; export const Result = Object.freeze({ Ok: <T, E>(ok: T): Result<T, E> => ({ _tag: "Ok", ok }), Err: <T, E>(err: E): Result<T, E> => ({ _tag: "Err", err }), }); const start = (): Promise<Result<string, number>> => { return new Promise((resolve) => { resolve(someCondition ? Result.Ok("correct!") : Result.Err(-1)); }); }; start().then((r) => { switch (r._tag) { case "Ok": { console.log(`Ok { ${r.ok} }`); break; } case "Err": { console.log(`Err { ${r.err} }`); break; } } });
over 4 years ago · Santiago Trujillo Relatório

0

La excepción se escribe any porque no podemos garantizar el tipo correcto de la excepción en el momento del diseño, y ni TypeScript ni JavaScript brindan la capacidad de proteger los tipos de excepción en el tiempo de ejecución. Su mejor opción es usar protectores de tipo para proporcionar una verificación en tiempo de diseño y tiempo de ejecución en su código.

fuente

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