我正在尝试用Cypress安装TypeScript。环境似乎设置得很好,但似乎存在一个问题,就是从Cypress中提取类型定义。
为了解构cy.wait('@graphql').then({request})参数,TypeScript抱怨您必须设置request参数的类型。Cypress似乎没有太多的类型输出,但是有Cypress.WaitXHR和Cypress.ObjectLike允许我黑进解决方案。
import Cypress from 'cypress';
type WaitXHR = Cypress.WaitXHR;
type ObjectLike = Cypress.ObjectLike;
describe('Admin Page', () => {
it('Visits admin page', () => {
cy.server()
.route({
method: 'POST',
url: 'https://www.example.com/graphql',
}).as('graphql');
cy.visit('/');
cy.wait('@graphql').then((xhr: WaitXHR) => {
const { request }: { request: ObjectLike} = xhr;
expect(request.body.operationName).to.equal('initalSetup');
});
});这个解决方案似乎安抚了TypeScript,但感觉不太好。有更好的方法吗?
发布于 2021-04-05 16:05:47
我已经这样做了,虽然我不喜欢使用‘任何’它更整洁。
import Cypress from 'cypress';
type ObjectLike = Cypress.ObjectLike;
interface WaitXHRCustom {
request: ObjectLike;
response: ObjectLike;
}
cy.wait(`@${aliasRequest}`).should((xhr: any) => {
const { request, response } = xhr as WaitXHRCustom;https://stackoverflow.com/questions/60279071
复制相似问题