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

Cypress搭配Typescript出现get类型错误及JQuery未定义如何解决?

报错原因

你遇到的JQuery is not defined报错,是因为Cypress内置的JQuery类型默认挂载在Cypress命名空间下,全局作用域没有直接暴露JQuery类型。


解决方案

方案1:复用Cypress内置类型(推荐,无需额外安装依赖)

直接修改cypress/support/index.ts里的类型声明,给JQuery加上Cypress.前缀即可,修改后的代码如下:

/// <reference types="cypress" />

declare global {
  namespace Cypress {
    interface Chainable {
      /**
       * Custom command to select DOM element by data-cy attribute.
       * @example cy.dataCy('greeting')
       */
      dataCy(value: string): Chainable<Cypress.JQuery<HTMLElement>>
    }
  } 
}

修改后重启IDE的TypeScript服务即可消除报错。

方案2:全局注册JQuery类型(适合需要全局用JQuery类型的场景)

如果需要在全局作用域直接使用JQuery类型,可以按以下步骤操作:

  1. 安装JQuery类型依赖:
npm install @types/jquery --save-dev
  1. 修改cypress/tsconfig.json的types配置,新增jquery项:
{
  "compilerOptions": {
    "target": "es5",
    "lib": ["es5", "dom"],
    "types": ["cypress", "jquery"]
  },
  "include": ["**/*.ts"]
}

额外优化建议

可以把自定义命令的类型声明单独放到cypress/support/index.d.ts文件中,和业务实现代码拆分,更便于后续维护。

内容的提问来源于stack exchange,提问作者denislexic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:00