typescript - 赛普拉斯自定义子命令 Typescript
问题描述
我正在使用 Typescript 进行赛普拉斯测试,并且我正在尝试将类型定义添加到自定义命令中,以提高可读性并提供智能感知/自动完成功能。
我的自定义命令应该只链接到一个多选字段,因此它是一个子命令,并如图所示使用。它不能直接链接,cy
但是当我cy.
在 VS Code 中输入我的规范文件时,它在智能感知中暗示我可以使用它,即使它无效。
有没有办法在输入时阻止它被建议作为选项cy.
?我已经指定它应该在自定义命令中的一个元素上调用,但也许我需要在 index.d.ts 中更改一些内容?
cy.get('MultiselectField1').MultiSelectOptions(true) // Correct usage
cy.MultiSelectOptions(true) // Incorrect usage
命令.js
Cypress.Commands.add('MultiSelectOptions', {
prevSubject: 'element'
}, (subject, selected) => {
if(selected){
return subject.find('.selected')
}
else{
return subject.find('.unselected')
}
})
索引.d.ts
declare namespace Cypress {
interface Chainable {
/**
* Returns the selected or unselected options section for a multiselect field
* @param {boolean} selected true/false for selected/unselected options respectively
* @example cy.get('MultiselectField1').MultiSelectOptions(true)
*/
MultiSelectOptions(selected: boolean): Chainable<Element>
}
}
解决方案
推荐阅读
- php - 每当更新 MYSQL 数据库表时发送 firebase chrome 推送通知
- python - 在一组元组中找到最大对
- node.js - Typescript + nodemon + VS Code 与声明合并一起工作
- python-3.x - TypeError:('关键字参数不理解:','培训')
- javascript - 将 Font Awesome 与 Aurelia 和 npm 一起使用...找不到模块
- cloudflare-workers - Cloudflare Worker 为客户端超时,但所有工作都已完成并且没有给出超时错误(使用 console.log/`wrangler tail` 进行检查)
- python - ImportError:无法从“预处理器”导入名称“TwitterPreprocessor”
- javascript - 从不同的地方访问 JS 变量