typescript - Cypress 10:自定义命令不是一个函数
我有这个错误,cy. 不是一个函数:
但是我已经用这个更新了 e2e.ts:
import './commands';
这是我的 commands.ts:
declare namespace Cypress {
interface Chainable<Subject = any> {
login(email: string, password: string): typeof login;
}
}
//
function login(email: string, password: string): void {
cy.visit('/login');
cy.url().should('includes', 'login');
cy.contains('Please sign in');
cy.get('[name=email]').type(email);
cy.get('[name=password]').type(password);
cy.get('button').click();
}
//
// NOTE: You can use it like so:
Cypress.Commands.add('login', login);
我这里漏了什么?
谢谢
答案#1
我认为你需要在类型定义周围添加 declare global {。
declare global {
declare namespace Cypress {
interface Chainable<Subject = any> {
login(email: string, password: string): typeof login;
}
}
}
查看如何在四个步骤中轻松设置 Cypress 上的 TypeScript,以便进行一个相对直接的讨论。
另见如何为 Cypress 自定义命令声明类型以获取替代方法。
