入坑typescript, 手撸了一个enum的实现, 挺舒服的
遭了, 这是心动的感觉
给不使用typescript的同学附上一个es6实现, 对外使用起来感受是一样的, 并且会有vscode智能提示
class Enum {
constructor(map) {
this.map = new Map(map)
}
getNames() {
return Object.keys(this).filter(key => key !== 'map')
}
getTexts() {
return Array.from(this.map.values())
}
getTextByName(name) {
return this.map.get(this[name])
}
getTextByValue(value) {
return this.map.get(value)
}
}
module.exports = {
Gender: new class extends Enum {
constructor() {
super([
[0, '未知'],
[1, '男性'],
[2, '女性'],
])
this.Unknow = 0
this.Male = 1
this.Female = 2
}
}()
}
9 回复
楼主typescrip怎么学的,我看了一下文档,觉得头大
你弄得跟Java的注解一样,IDE不支持吧,这样在选枚举的时候,就没有代码提示了呀。 还是用jsdoc注释格式吧,还能在用的时候显示注释
@renzhao1113 因为楼主以前用静态语言的, 所以轻车熟路啊, 函数式编程+静态类型, 不要太爽
@cloudZQY 这个…又不是为了代码提示
想问问楼主这是什么插件,文件夹icon那个
@im-here 插件排行榜首页就有吧🤨你找找
看官方文档原生enum类型还未支持decorator,如有哪位同学有手段请开始表演
这一看就是java跳槽过来玩node的
@zengming00 这更像C#风格enum🤨java的enum刚开始接触的时候还有些不习惯