【问题标题】:Enum Values to Array [duplicate]枚举值到数组[重复]
【发布时间】:2020-09-24 06:49:15
【问题描述】:

我只想将枚举的值作为数组获取。所以如果你有:

    enum A {
        dog = 1,
        cat = 2,
        ant = 3
    }

我想要什么:["dog", "cat", "ant"] 作者:

    Object.values(A)

但它让你:["dog", "cat", "ant", 0, 1, 2]

而且返回的值(0, 1, 2) 无论如何都不会与给定的(1, 2, 3) 匹配。 我怎样才能做到这一点?

【问题讨论】:

    标签: arrays typescript enums


    【解决方案1】:

    你不能的简短回答,因为打字稿会将你的枚举编译成以下内容

    var A;
    (function (A) {
        A[A["dog"] = 1] = "dog";
        A[A["cat"] = 2] = "cat";
        A[A["ant"] = 3] = "ant";
    })(A || (A = {}));
    

    link to typescript playground

    但是,由于枚举不能有数字键,您可以执行以下操作来获取键

    Object.keys(A).filter(isNaN)
    

    这是可行的,因为枚举不能包含数值作为条目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2016-03-05
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 2012-08-11
      相关资源
      最近更新 更多