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

Cypress中如何定义无需导入即可全局使用的TypeScript Enum

这个需求完全可以实现,具体操作步骤如下:

步骤1:创建Enum单独定义文件

建议存放路径为cypress/support/constants/myEnum.ts(JS项目后缀改为.js即可):

  • TypeScript版本代码:
export enum MyEnum{
    A = "hello",
    B = "goodbye"
}
  • JavaScript版本代码(JS无原生enum,用对象模拟即可):
export const MyEnum = {
    A: "hello",
    B: "goodbye"
}

步骤2:配置全局挂载

打开Cypress全局自动加载的入口文件:Cypress 10+版本E2E测试默认入口为cypress/support/e2e.ts,组件测试默认入口为cypress/support/component.ts,10以下旧版本统一入口为cypress/support/index.ts。
在对应入口文件中添加如下代码完成全局挂载:

  • TypeScript版本代码(包含类型声明,避免IDE报错、提供类型提示):
import { MyEnum } from './constants/myEnum'

// 全局类型声明
declare global {
  const MyEnum: typeof import('./constants/myEnum').MyEnum
}

// 挂载到全局对象
globalThis.MyEnum = MyEnum

如果你的TS仍提示找不到MyEnum,请检查项目tsconfig.json的include配置项,确保包含"cypress/support/**/*.ts"路径。

  • JavaScript版本代码:
import { MyEnum } from './constants/myEnum'
window.MyEnum = MyEnum

验证效果

配置完成后,不需要在自定义命令文件、测试用例文件中额外import,直接按照你示例的写法使用MyEnum即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:57:04