Расширить объявление типа для свойства объекта внутри интерфейса - PullRequest
0 голосов
/ 17 января 2020

Учитывая это существующее объявление типа:

declare namespace Cypress {
  interface Cypress {
    dom: {
      isHidden(element: JQuery | HTMLElement): boolean
    }
  }
}

Я хочу предоставить intellisense и строгие типы для других функций в этой библиотеке

Хотя я могу объединить Интерфейс 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): boolean; } ', но здесь есть тип' {isHidden (element: HTMLElement | JQuery): boolean; isAttached (el: any): логическое значение; isDetached (el: any): логическое значение; } '.

Мне пришлось прибегнуть к ванили js

const dom: any = Cypress.dom;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...