Typescriptenums的正确用法

兄弟有没有人讲详细点的,我想讲解下,Typescriptenums的正确用法
最新回答
把酒临风

2024-10-31 12:23:43

前言

对于现在技术社区的现状的,我分析用户画像觉得大部分的用户更多的是喜欢短频快的节奏文章,所以故尝试用最短时间挖掘简单的面试题,将背后的知识整理分享给大家,喜欢在后续的面试过程中,可以对你有帮助,如果刚好是自己的知识盲区不妨帮忙点赞支持一下

背景

我们TS会经常遇到不知道该如何使用枚举enums场景,接下来我们分析用户的场景然后进行实际应用吧

enums语法//枚举enumsenumDirection{Up,Down,Left,Right,}console.log(Direction.Up);//构建了Up索引console.log(Direction[0]);//构建了0索引双向构建索引

编译后,我们发现有趣的地方是双向构建索引的机制,将顺序索引和Key索引都构建起来

varDirection;(function(Direction){Direction[Direction["Up"]=0]="Up";Direction[Direction["Down"]=1]="Down";Direction[Direction["Left"]=2]="Left";Direction[Direction["Right"]=3]="Right";})(Direction||(Direction={}));

正确使用enum姿势第一种情况

当我们定义枚举的时候,直接使用关键词enum时候

//不使用const枚举enumsenumDirection{Up='UP',Down='Down',Left='Left',Right='Right',}constvalue='UP'if(value===Direction.Up){//dosomething}

编译后

//枚举enumsvarDirection;(function(Direction){Direction["Up"]="UP";Direction["Down"]="Down";Direction["Left"]="Left";Direction["Right"]="Right";})(Direction||(Direction={}));varvalue='UP';if(value===Direction.Up){//dosomething}

第二种情况

当我们使用const关键词命名枚举的情况下,我们会惊喜地发现变化

//使用const定义枚举enumsconstenumDirection{Up='UP',Down='Down',Left='Left',Right='Right',}constvalue='UP'if(value===Direction.Up){//dosomething}

编译后

varvalue='UP';if(value==="UP"/*Up*/){//dosomething}

所以合理地使用enum?枚举对提高应用的性能来说是帮助很大的

小结

这篇文章到这里就结束了,水平有限难免有纰漏,欢迎纠错。最后希望帮忙点点赞,这对我创作是无比的肯定和动力。希望可以帮到你

原文:https://juejin.cn/post/7098542845824335902