gpt4 book ai didi

javascript - 我可以在 typescript 中设置一个通用函数来枚举吗?

转载 作者:搜寻专家 更新时间:2023-10-30 21:25:21 25 4
gpt4 key购买 nike

我定义了这样一个枚举:

enum VideoCategoryEnum {
knowledge = 0,
condition = 1,
interview = 2,
speech = 3,
entertainment = 4,
news = 5,
advertisement = 6,
others = 7,
}

我想为所有枚举设置一个通用函数,这样我就可以:

VideoCategoryEnum.tostring() // 'VideoCategoryEnum'

这有可能吗?谢谢。

最佳答案

Typescript 基本上只是构建在 Javascript 之上的编译时类型检查。 Typescript 枚举类型只是底层的映射(对象),你可以看看 this answer

因此,为枚举类型实现 toString 函数非常简单。您可以在定义枚举类型后执行此操作。只需确保您没有将您的实现放在 .d.ts 文件中,因为这些文件不会被编译成 javascript 代码。

根据上面的答案链接,您的枚举类型将被编译为:

var VideoCategoryEnum;
(function (VideoCategoryEnum) {
VideoCategoryEnum[VideoCategoryEnum["knowledge"] = 0] = "knowledge";
VideoCategoryEnum[VideoCategoryEnum["condition"] = 1] = "condition";
// ...
})(VideoCategoryEnum || (VideoCategoryEnum = {}));
;

/* would equivalent to the following:
VideoCategoryEnum = {
"knowledge": 0,
"condition": 1,
...
"0": "knowledge",
"1": "condition",
}
*/
// since it's just basically an object, you can do whatever you want with it like below
// your implementation of toString
VideoCategoryEnum.toString = function() { return 'VideoCategoryEnum'; };

关于javascript - 我可以在 typescript 中设置一个通用函数来枚举吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57601692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com