typescript - Typescript + Cypress 预期 X 参数,但使用链式方法得到 X-1 错误 2551
问题描述
我正在尝试在使用赛普拉斯自定义命令时消除 Typescript 中的错误 2551(“预期 2 个参数,但得到 1 个”)。现在我有:
declare global {
namespace Cypress {
interface Chainable<Subject> {
randomSubset(arr, sampleSize): Chainable<Subject>
}
}
}
Cypress.Commands.add('randomSubset', {prevSubject: true}, (arr, sampleSize){...}
但是,当我尝试使用它时:
cy.get('li').randomSubset(0.1).each(...);
我收到上述错误。如何让 Typescript 编译器识别出第一个参数来自链式函数返回,而不是显式传递?
编辑:请注意,代码运行正确,只是试图解决 Typescript 警告
解决方案
所以这个问题是基于对Cypress.Commands.add()
函数定义的误解。如果prevSubject: true
,则Cypress.Commands.add()
函数将第三个参数作为主题,并将任何后续参数作为自定义函数的选项。
因此,为了解决这个问题,我更正了类型声明:
declare global {
namespace Cypress {
interface Chainable<Subject> {
randomSubset(sampleSize): Chainable<Subject>
}
}
}
并保持其他一切不变。这消除了错误。
推荐阅读
- visual-studio-2017 - VS2017 安装失败;无法通过安装程序或 Microsoft 开发社区报告
- amazon-s3 - 在 Terraform 中将多个 AWS 账户作为环境处理的最佳方式是什么?
- sql-server - NodeJs Connection Error querying SQL Server
- php - Post Form initiates Get Request
- ios - After In App Purchase what is the best way to check if a users paid
- android - Titanium android different orientation lock between tablet and phone
- javascript - 为什么这个未赋值的 let 变量不会导致引用错误?
- php - 我应该在我的图像表中存储评论/喜欢/不喜欢的数量吗?
- css - 带有内嵌文本的加载器的 Vuetify 按钮
- python - 将数据从表单中的条件/链式下拉框传递到视图或直接传递到 URL