codeceptjs / codeceptjs/CodeceptJS

[Types] Unable to extend ILocator, and addFilter is missing from Locator

未关闭
#2,565 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
JavaScript
星标
4.2k
派生
757
平均合并
2 天 9 小时
30 天内合并 PR
16

描述

#### What are you trying to achieve?

I would like to extend the `ILocator` type in order to add a custom Locator to it (e.g. {da: string}) for selecting elements with a custom `data-automation` attribute.

I would also like to call `locator.addFillter()` without getting a TS error.

#### What do you get instead?

##### ILocator

I am unable to extend ILocator type as it isn't exported on the types:

![image](https://user-images.githubusercontent.com/7611706/91538748-323f9e00-e910-11ea-8cf6-3f5798280d8f.png)

##### Locator

I have to extend `Locator` to declare `addFilter`, as this property is missing from the generated types.

``` ts

interface Locator {
addFilter: (
callback: (
providedLocator: Record,
locatorObj: { type: string; value: string },
) => void,
) => void;
}

```

otherwise, I'll get this:
![image](https://user-images.githubusercontent.com/7611706/91539368-1b4d7b80-e911-11ea-8fac-5110d3f4b2c3.png)

### Details

* CodeceptJS version: 2.6.8
* NodeJS Version: 12
* Operating System: OSX
* playwright: 1.3.0

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。