有没有更好的方法来用打字稿模拟ENUM?

萨曼莎JT星

我在基类/不同文件中创建类似于ENUM的内容:

ExamStatusId = {
    All: {
        elem: this.examStatusSelectId, // << refers to a string
        text: 'Exam Status: All',
        val: 0
    },
    Current: {
        elem: this.examStatusSelectId, // << refers to a string
        text: 'Exam Status: Current',
        val: 1
    }
}

一旦定义了这个,我就可以在另一个类/文件中调用这样的函数:

page.isSelectedValue(page.ExamStatusId.All);

这是另一个类/文件中的函数:

isSelectedValue (data) {
    var title = this.getTitle(data.id);
    var valueString = data.val.toString();
    it('Check for ' + data.text, function () {
        expect(data.elem.getAttribute("value")).toBe(valueString);
    });
}

这段代码有效,但是有人可以告诉我这是否是更好的方式,使我可以isSelectedValue使用Typescript将所需的数据传递给函数吗?我已经使用Typescript编写代码,并想充分利用它提供的所有功能。

另外,如何确保传递给该函数的内容具有elem,text和val的所有参数?

迪克·范登·布林克

看起来您想要类似以下代码的内容。至少在我看来,您似乎没有使用枚举,而是使用了诸如对象常量之类的东西?这可以通过额外的界面来完成。不错的是,您还可以在isSelectedValue函数中进行类型检查!

interface IElement {
    elem: string;
    text: string;
    val: number
}
var ExamStatusId = {
    All: <IElement>{
        elem: this.examStatusSelectId, // << refers to a string
        text: 'Exam Status: All',
        val: 0
    },
    Current: <IElement>{
        elem: this.examStatusSelectId, // << refers to a string
        text: 'Exam Status: Current',
        val: 1
    }
}

function isSelectedValue (data: IElement) {
}

isSelectedValue(ExamStatusId.All);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有更好的方法来用cmake构造C项目?

来自分类Dev

有没有一种可移植的方法来用Qt赋予线程名称?

来自分类Dev

有没有一种可移植的方法来用Qt赋予线程名称?

来自分类Dev

有没有一种首选的方法来用pytest测试回调?

来自分类Dev

有没有更好的方法来编辑PDF?

来自分类Dev

有没有更好的方法来过滤未来

来自分类Dev

有没有更好的方法来兑现承诺?

来自分类Dev

有没有更好的方法来使用WebForms?

来自分类Dev

有没有更好的方法来编辑PDF?

来自分类Dev

有没有更好的方法来更新 PostgreSQL

来自分类Dev

有没有更好的方法来构建 OracleCommand?

来自分类Dev

有没有更好的方法来计算重量

来自分类Dev

有没有一种有效的方法来用混音器设置所有行?

来自分类Dev

有没有一种有效的方法来用混音器设置所有行?

来自分类Dev

有没有更有效的方法来用树形图计数字符串的实例?

来自分类Dev

有没有一种紧凑的方法来用Java编码二进制文字数据?

来自分类Dev

有没有更优雅的方法来用默认字符串解开Option <Cookie>?

来自分类Dev

有没有更好的方法来实现没有Javascript的CSS动画?

来自分类Dev

有没有更好的方法来实现没有Javascript的CSS动画?

来自分类Dev

有没有一种快速的方法来使打字稿编译器源在Visual Studio中工作

来自分类Dev

有没有一种方法来获取属性的声明类型,而不是打字稿中赋值的类型

来自分类Dev

有没有一种类型安全的方法来将较大的对象减少()为打字稿中的新类型?

来自分类Dev

Haskell:有没有更好的方法来编写具有相同RHS的case语句?

来自分类Dev

有没有更好的方法来选择具有相同父元素的多个元素?

来自分类Dev

有没有更好的方法来检查AJAX请求的值是否有效?

来自分类Dev

Haskell:有没有更好的方法来编写具有相同RHS的case语句?

来自分类Dev

有没有安全的方法来评估红宝石?还是更好的方法呢?

来自分类Dev

有没有比一堆if语句更好的方法来调用我的方法?

来自分类Dev

有没有更好的方法来替换我的双 forEach 方法?

Related 相关文章

  1. 1

    有没有更好的方法来用cmake构造C项目?

  2. 2

    有没有一种可移植的方法来用Qt赋予线程名称?

  3. 3

    有没有一种可移植的方法来用Qt赋予线程名称?

  4. 4

    有没有一种首选的方法来用pytest测试回调?

  5. 5

    有没有更好的方法来编辑PDF?

  6. 6

    有没有更好的方法来过滤未来

  7. 7

    有没有更好的方法来兑现承诺?

  8. 8

    有没有更好的方法来使用WebForms?

  9. 9

    有没有更好的方法来编辑PDF?

  10. 10

    有没有更好的方法来更新 PostgreSQL

  11. 11

    有没有更好的方法来构建 OracleCommand?

  12. 12

    有没有更好的方法来计算重量

  13. 13

    有没有一种有效的方法来用混音器设置所有行?

  14. 14

    有没有一种有效的方法来用混音器设置所有行?

  15. 15

    有没有更有效的方法来用树形图计数字符串的实例?

  16. 16

    有没有一种紧凑的方法来用Java编码二进制文字数据?

  17. 17

    有没有更优雅的方法来用默认字符串解开Option <Cookie>?

  18. 18

    有没有更好的方法来实现没有Javascript的CSS动画?

  19. 19

    有没有更好的方法来实现没有Javascript的CSS动画?

  20. 20

    有没有一种快速的方法来使打字稿编译器源在Visual Studio中工作

  21. 21

    有没有一种方法来获取属性的声明类型,而不是打字稿中赋值的类型

  22. 22

    有没有一种类型安全的方法来将较大的对象减少()为打字稿中的新类型?

  23. 23

    Haskell:有没有更好的方法来编写具有相同RHS的case语句?

  24. 24

    有没有更好的方法来选择具有相同父元素的多个元素?

  25. 25

    有没有更好的方法来检查AJAX请求的值是否有效?

  26. 26

    Haskell:有没有更好的方法来编写具有相同RHS的case语句?

  27. 27

    有没有安全的方法来评估红宝石?还是更好的方法呢?

  28. 28

    有没有比一堆if语句更好的方法来调用我的方法?

  29. 29

    有没有更好的方法来替换我的双 forEach 方法?

热门标签

归档