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

118
Visualizações
No regresar explícitamente en la devolución de llamada de la cadena de métodos hace que el compilador infiera incorrectamente el tema actual

En el primer ejemplo, myString tiene el error ts 2322 porque cree que returnString es un número (no lo es). En el segundo ejemplo, si devolvemos explícitamente getNumber(), no hay error ts 2322.

getString() devuelve un valor dentro de su definición. Cypress considerará el sujeto actual como el que se devolvió por última vez o se devolvió explícitamente en la devolución de llamada de una cadena de métodos, que en este caso es myString()

¿Cómo puedo abordar este error sin usar la palabra clave 'return'? Me gustaría usar el estilo del ejemplo 1 pero no quiero resaltar la sintaxis de falso positivo

 describe('example with error', () => { it('example with error', () => { getNumber() .then((returnedNumber) => { getString() }) .then((returnedString) => { const myString: string = returnedString // <-- HERE: "Type 'number' is not assignable to type 'string'. ts(2322)" expect(myString).to.equal('string') // true }) }) it('example without error', () => { getNumber() .then((returnedNumber) => { return getString() // <-- HERE: explicitly returning }) .then((returnedString) => { const myString: string = returnedString expect(myString).to.equal('string') // true }) }) }) function getNumber(): Cypress.Chainable<number> { return cy.wrap(1) } function getString(): Cypress.Chainable<string> { return cy.wrap('string') }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

De los documentos para .then()

Lo que se devuelva desde la función de devolución de llamada se convierte en el nuevo asunto y fluirá hacia el siguiente comando (con la excepción de undefined)

Además, el resultado del último comando de Cypress en la función de devolución de llamada se generará como el nuevo asunto y pasará al siguiente comando si no hay retorno.

No estoy seguro de cómo puede definir ese comportamiento (cambiar de tema si no hay un retorno explícito) al compilador de TypeScript.

Pero para mí, la implicación es que el Sujeto puede tener any tipo.

Escribir el parámetro como tal elimina el mensaje de error.

 getNumber() .then(() => { getString() // Typescript can't infer Subject will be string // just because there's no return }) .then((returnedString: any) => { const myString: string = returnedString // no error })
about 4 years ago · Juan Pablo Isaza 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