赛普拉斯自定义子命令打字稿

问题描述

我在 Cypress 测试中使用 Typescript,并且我正在尝试将类型定义添加自定义命令中,以提高可读性并提供智能感知/自动完成。

我的自定义命令应该只链接一个多选字段,所以它是一个子命令,并像显示的那样使用。它不能直接从 cy 链接起来,但是当我在 VS Code 的规范文件中键入 cy. 时,它在智能感知中建议我可以使用它,即使它无效。>

有什么方法可以让我在输入 cy. 时阻止它被建议作为选项?我已经指定应该在自定义命令中的元素上调用它,但也许我需要在 index.d.ts 中更改某些内容

enter image description here

cy.get('MultiselectField1').MultiSelectOptions(true) // Correct usage
cy.MultiSelectOptions(true) // Incorrect usage

commands.js

Cypress.Commands.add('MultiSelectOptions',{
    prevSubject: 'element'
  },(subject,selected) => {
      if(selected){
        return subject.find('.selected')
      }
      else{
        return subject.find('.unselected')
      }
  })

index.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>
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)