You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入@badeball/cypress-cucumber-preprocessor的And时出现TS2305错误

解决@badeball/cypress-cucumber-preprocessor无法导入"And"关键字的问题

你遇到的问题根源在于:And、But这类关键字并不是该预处理器直接导出的成员,它们属于Cucumber规范里的语法糖别名,不需要单独导入就能直接使用。

具体解决步骤:

  • 只保留Given、When、Then的导入语句,直接在代码里写And或But即可,预处理器会自动识别它们为前一个步骤关键字的别名(比如前一步是Given,And就等价于Given;前一步是When,And就等价于When)。

示例代码:

// 仅导入核心关键字
import { Given, When, Then } from "@badeball/cypress-cucumber-preprocessor";

Given("我打开商城首页", () => {
  cy.visit("/");
});

// 直接使用And,无需额外导入
And("我搜索商品「无线耳机」", () => {
  cy.get("#search-input").type("无线耳机");
  cy.get("#search-btn").click();
});

When("我点击第一个商品", () => {
  cy.get(".item-card").first().click();
});

// 同理可直接使用But
But("我不选择套餐", () => {
  cy.get(".package-option").uncheck();
});

Then("我应该进入商品详情页", () => {
  cy.url().should("include", "/product/detail");
});

若遇到TypeScript类型报错:

检查你的tsconfig.json,确保已包含该预处理器的类型声明:

{
  "compilerOptions": {
    "types": [
      "cypress",
      "@badeball/cypress-cucumber-preprocessor"
    ]
  }
}

配置完成后,TypeScript就能正确识别And、But这类关键字的类型了。

内容的提问来源于stack exchange,提问作者Tarik Čizmić

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:50:28