给出以下现有的类型声明:
declare namespace Cypress {
interface Cypress {
dom: {
isHidden(element: JQuery | HTMLElement): boolean
}
}
}
我想为其他功能in this library
提供智能和强类型虽然我可以将Cypress接口与新属性合并,但不适用于该接口内部的对象。
对上述内容进行补充:
declare namespace Cypress {
interface Cypress{
// tslint:disable-next-line:class-name
dom: {
isHidden(element: JQuery | HTMLElement): boolean;
isAttached(el: any): boolean;
isDetached(el: any): boolean;
}
}
}
产量
TS2717:后续属性声明必须具有相同的类型。 属性“ dom”的类型必须为“ {isHidden(element:HTMLElement | jQuery):布尔值; }”,但此处的类型为“ { isHidden(element:HTMLElement | JQuery):布尔值; isAttached(el:any):布尔值; isDetached(el:any):布尔值; }'。
我不得不求助于香草js
const dom: any = Cypress.dom;