首页 > 解决方案 > 如何在子类中继承父类字典中的键

问题描述

我正在尝试编写赛普拉斯 UI 测试自动化,其中我在自己的类中捕获每个网页上的 UI 元素。我有两个类对应于不同的网页:

class WebPage1 {
    elements = {
        e1: () => console.log('return e1'), //this will be something like "cy.get('...')" in cypress
        e2: () => console.log('return e2'),
        e3: () => console.log('return e3')
    }
}

class WebPage2 {
    elements = {
        e1: () => console.log('return e1'),
        e2: () => console.log('return e2'),
        e4: () => console.log('return e4')
    }
}

请注意,这两个类在其字典中具有相同的键e1e2因为两个网页都包含相同的元素) 。elements这些类也有一些相同概念的专业化。所以我在想我是否可以有一个包含e1e2键的父类,WebPage1并将WebPage2继承这些键。但是我怎样才能继承父类字典的一些键呢?可能吗?我试过这个:

class ParentPage {
    e1() {
        console.log('return e1') //this will be something like "return cy.get('...')" in cypress
    }

    e2() {
        console.log('return e2')
    }
}

class WebPage1 extends ParentPage {
    elements = {
        e1: () => this.e1,
        e2: () => this.e2,
        e3: () => console.log('return e3')
    }
}

class WebPage2 extends ParentPage  {
    elements = {
        e1: () => this.e1,
        e2: () => this.e2,
        e4: () => console.log('return e4')
    }
}

这是正确的方法还是有其他更好的方法?

标签: javascripttypescriptecmascript-6ecmascript-2016

解决方案


推荐阅读