Учитывая это существующее объявление типа:
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;