在接口内部扩展对象属性的类型声明

时间:2020-01-17 07:13:09

标签: typescript cypress

给出以下现有的类型声明:

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;

0 个答案:

没有答案
相关问题