gpt4 book ai didi

typescript - 使用 Cypress Typescript 类型

转载 作者:行者123 更新时间:2023-12-05 06:20:45 24 4
gpt4 key购买 nike

我正在尝试使用 Cypress 设置 TypeScript。环境似乎设置良好,但从 Cypress 中提取类型定义似乎存在问题。

为了解构 cy.wait('@graphql').then({request}) 参数,TypeScript 提示说你必须设置 request 的类型参数。似乎没有很多来自 Cypress 的类型导出,但有 Cypress.WaitXHRCypress.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,但感觉不是很好。 有更好的方法吗?

最佳答案

我已经这样做了,虽然我不喜欢使用“任何”它更整洁。

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;

关于typescript - 使用 Cypress Typescript 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60279071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com