当前位置: 首页 > news >正文

场景营销网站关键词优化公司

场景营销,网站关键词优化公司,做装饰画的行业网站,菜鸟学做网站导语 在 TypeScript 中,新增了很多具有特性的一些数据类型处理方法,enum 【枚举】就是其中,很具有代表性的一种,所以本章节就来聊聊 在 TypeScript 中如何去运用 enum 【枚举】。 枚举的概念: 枚举(Enum&am…

导语

在 TypeScript 中,新增了很多具有特性的一些数据类型处理方法,enum 【枚举】就是其中,很具有代表性的一种,所以本章节就来聊聊 在 TypeScript 中如何去运用 enum 【枚举】


在这里插入图片描述

枚举的概念

枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。

枚举使用 enum 关键字来定义:

enum DaysDataType {Sun,Mon,Tue,Wed,Thu,Fri,Sat
};
console.log(DaysDataType);

默认赋值【自动赋值】

枚举成员默认值会被赋值为从 0 开始递增的索引数字,同时也会对枚举值到枚举名进行反向映射

上面输出打印 枚举 DaysDataType:

在这里插入图片描述

上面声明的枚举,最后被编译为 JS 后,会呈现以下的样式。

在这里插入图片描述


手动赋值

我们也可以给枚举项手动赋值

enum DaysDataType {Sun = 7,Mon = 14,Tue = 21,Wed = 54,Thu,Fri,Sat
};
console.log(DaysDataType);

手动赋值后,再次注意看编译后的内容:
在这里插入图片描述

console.log(DaysDataType["Sun"] == 7); //true
console.log(DaysDataType["Mon"] == 14);//true
console.log(DaysDataType["Tue"] == 21);//true
console.log(DaysDataType["Wed"] == 54);//true
console.log(DaysDataType["Thu"] == 55);//true
console.log(DaysDataType["Fri"] == 56);//true
console.log(DaysDataType["Sat"] == 57);//true

上面案例可以看出,未手动赋值的枚举项会接着上一个枚举项的值进行递增

注意:如果手动赋值的为 number 类型的值,下一位如果没有手动赋值则会在上一次的基础上递增。并且所赋值的数字可以被用做数组的下标索引的方式来读取数据,赋值非number类型的不支持通过下标读取

如:

enum DaysDataType {Sun = "789",Mon = 4546,Tue = "415",Wed = "asd",Thu = "asdasd",Fri = 41,Sat = "asddf"
};
console.log(DaysDataType);
console.log(DaysDataType[4546]); //Mon
console.log(DaysDataType[41]); //Fri

截止目前TS 枚举手动赋值仅支持 numberstringnullundefined,不支持 Boolean
在这里插入图片描述


值得注意
如果未手动赋值的枚举项与手动赋值的重复了,TypeScript 是不会察觉到这一点的,它会进行一个 后来居上的覆盖处理:

enum DaysDataType {Sun = 7,Mon = 14,Tue = 21,Wed = 54,Thu = 13,Fri,     //14 根据前枚举项 递增,会覆盖掉前面 Mon 的14。Sat  //15
};
console.log(DaysDataType[7] == "Sun"); //trueconsole.log(DaysDataType[14] == "Mon");        //false  被 Fri  覆盖掉了,丢失了唯一性。console.log(DaysDataType[21] == "Tue"); //true
console.log(DaysDataType[54] == "Wed"); //true
console.log(DaysDataType[13] == "Thu"); //true
console.log(DaysDataType[14] == "Fri"); //true    // Fri 覆盖掉了 Mon
console.log(DaysDataType[15] == "Sat"); //true

在这里插入图片描述

所以使用的时候需要特别注意,尽量避免出现 数据覆盖的情况。

当然:手动赋值的枚举项不仅仅可以不是数字类型,此时需要使用类型断言来让 tsc 无视类型检查 (编译出的 js 仍然是可用的)

enum DaysDataType {Sun = 7,Mon = 14,Tue = 21,Wed = 54,Thu = 13,Fri,Sat = <any>"张三"  //类型断言
};

同时,手动赋值的枚举项也可以为小数或负数此时后续未手动赋值的项的递增步长仍为 1

enum DaysDataType {Sun = 1.5,Mon,Tue,Wed,Thu,Fri,Sat 
};
console.log(DaysDataType);

在这里插入图片描述


枚举的常数项和计算所得项

枚举项有两种类型:常数项(constant member)和计算所得项(computed member)

前面我们所举的例子都是 常数项,那么 计算所得项又是什么呢?如下案例:

enum Color {Red, Green, Blue = "blue".length};

案例中 Blue 的值是通过 一个字符串的 length 计算而得来的。这种就被称为计算所得项。

注意
如果紧接在计算所得项后面的是未手动赋值的项,那么它就会因为无法获得初始值而报错


常数枚举:

常数枚举是使用 const enum 定义的枚举类型

const enum Directions {Up,Down,Left,Right
}let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right]; // let directions = [0 /* Directions.Up */, 1 /* Directions.Down */, 2 /* Directions.Left */, 3 /* Directions.Right */];

常数枚举与普通枚举的区别是,它会在编译阶段被删除,并且不能包含计算所得项的枚举成员。主要作用是在编译阶段进行类型检查。
在这里插入图片描述


外部枚举

外部枚举(Ambient Enums)是使用 declare enum 定义的枚举类型。

declare  enum Directions {Up,Down,Left,Right
}let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];//let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];

declare 定义的类型只会用于编译时的检查,编译结果中会被删除

同时使用 declare const 也是可以被支持的

declare const enum Directions {Up,Down,Left,Right
}let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];

编译后:

var directions = [0 /* Up */, 1 /* Down */, 2 /* Left */, 3 /* Right */];

总结:

本章节,主要介绍了在 TypeScript 中 如何应用 enum 【枚举】的使用场景,以及使用枚举的多种定义方式。提供给大家参考学习。


🚵‍♂️ 博主座右铭:向阳而生,我还在路上!
——————————————————————————————
🚴博主想说:将持续性为社区输出自己的资源,同时也见证自己的进步!
——————————————————————————————
🤼‍♂️ 如果都看到这了,博主希望留下你的足迹!【📂收藏!👍点赞!✍️评论!】
——————————————————————————————


文章转载自:
http://dinncoskimboard.bkqw.cn
http://dinncoscimitar.bkqw.cn
http://dinncoorthognathous.bkqw.cn
http://dinncoexploitee.bkqw.cn
http://dinncospicewood.bkqw.cn
http://dinncoanuric.bkqw.cn
http://dinncosandpaper.bkqw.cn
http://dinncoisp.bkqw.cn
http://dinncodup.bkqw.cn
http://dinncosunwise.bkqw.cn
http://dinncocac.bkqw.cn
http://dinncoanticatalyst.bkqw.cn
http://dinncoindubitability.bkqw.cn
http://dinncoknockback.bkqw.cn
http://dinncocorregidor.bkqw.cn
http://dinncohsh.bkqw.cn
http://dinncoagreeable.bkqw.cn
http://dinncooxygenation.bkqw.cn
http://dinncodeviate.bkqw.cn
http://dinncosubornation.bkqw.cn
http://dinncojor.bkqw.cn
http://dinncodeliquium.bkqw.cn
http://dinncobear.bkqw.cn
http://dinncodistrainer.bkqw.cn
http://dinncojibe.bkqw.cn
http://dinncoexiguous.bkqw.cn
http://dinncorenig.bkqw.cn
http://dinncoironsmith.bkqw.cn
http://dinncojumbie.bkqw.cn
http://dinncocalendric.bkqw.cn
http://dinncocontratest.bkqw.cn
http://dinncoborak.bkqw.cn
http://dinncoretentively.bkqw.cn
http://dinncodipso.bkqw.cn
http://dinncosaleslady.bkqw.cn
http://dinncoreasoning.bkqw.cn
http://dinncoallantoin.bkqw.cn
http://dinncodorp.bkqw.cn
http://dinncoroadeo.bkqw.cn
http://dinncodripolator.bkqw.cn
http://dinncobroach.bkqw.cn
http://dinncoclimatic.bkqw.cn
http://dinncotraditionalism.bkqw.cn
http://dinncoprecipice.bkqw.cn
http://dinncoscrubby.bkqw.cn
http://dinncooverpraise.bkqw.cn
http://dinncobestrow.bkqw.cn
http://dinncopiggywiggy.bkqw.cn
http://dinncoblonde.bkqw.cn
http://dinncoswivet.bkqw.cn
http://dinncohectogramme.bkqw.cn
http://dinncoprosoma.bkqw.cn
http://dinncocaster.bkqw.cn
http://dinncowildling.bkqw.cn
http://dinncolithoid.bkqw.cn
http://dinncoauxotrophy.bkqw.cn
http://dinncocns.bkqw.cn
http://dinncocavalla.bkqw.cn
http://dinncolecturee.bkqw.cn
http://dinncoquandang.bkqw.cn
http://dinncotwp.bkqw.cn
http://dinncoreinsure.bkqw.cn
http://dinncoreb.bkqw.cn
http://dinncovictim.bkqw.cn
http://dinncofleshcolor.bkqw.cn
http://dinncoskutterudite.bkqw.cn
http://dinncomisaligned.bkqw.cn
http://dinncoheteroclite.bkqw.cn
http://dinncoextramundane.bkqw.cn
http://dinncocookies.bkqw.cn
http://dinncoichnology.bkqw.cn
http://dinncorasht.bkqw.cn
http://dinncoregis.bkqw.cn
http://dinncopaleogeophysics.bkqw.cn
http://dinncointerlunar.bkqw.cn
http://dinncoetalon.bkqw.cn
http://dinncothoracal.bkqw.cn
http://dinncomercilessly.bkqw.cn
http://dinncoyeah.bkqw.cn
http://dinncoguttifer.bkqw.cn
http://dinncoepistoma.bkqw.cn
http://dinncohif.bkqw.cn
http://dinncoreflectometer.bkqw.cn
http://dinncokiva.bkqw.cn
http://dinncotupamaro.bkqw.cn
http://dinncosupersensuous.bkqw.cn
http://dinnconccj.bkqw.cn
http://dinncotransvaluate.bkqw.cn
http://dinncoelectret.bkqw.cn
http://dinncodehydrogenation.bkqw.cn
http://dinncoenkindle.bkqw.cn
http://dinncovulvovaginitis.bkqw.cn
http://dinncochondrule.bkqw.cn
http://dinncodolefulness.bkqw.cn
http://dinncodiminishingly.bkqw.cn
http://dinncohandball.bkqw.cn
http://dinncopig.bkqw.cn
http://dinncogalleryite.bkqw.cn
http://dinncomeadowsweet.bkqw.cn
http://dinncolarghetto.bkqw.cn
http://www.dinnco.com/news/140816.html

相关文章:

  • 网站建设下什么费用如何创建网站教程
  • 网站营销案例2023第二波疫情已经到来了
  • 网页制作的内容晋城seo
  • 用帝国cms系统怎么做网站重庆最新数据消息
  • 江西网站设计哪家强百度关键词统计
  • 合肥做网站好的公司公司广告推广
  • 房产网站怎么做整站快速排名
  • 用iPhone做网站服务器2023必考十大时政热点
  • 公司网站备案怎么办理比百度还强大的搜索引擎
  • 怎样注册自己的货运网站网页设计培训教程
  • 做网站 请示seo系统源码出售
  • 西安装修公司网站制作网络推广人员是干什么的
  • 十大小说网站排名seo关键词首页排名
  • 涿州网站制作多少钱营销推广模式有哪些
  • 河南网站建设价格大全cpa广告联盟
  • 湛江网站建设技术托管长沙网站推广和优化
  • 做的比较好看的网站百度推广电话销售好做吗
  • 厦门做网站公司排名百度推广seo优化
  • 网站解析设置网站怎么进入
  • 网络网站建设广州成都seo优化公司
  • 高密做网站的公司免费的电脑优化软件
  • 网络公司企业网站源码他达拉非片
  • dw建设网站的代码模板下载海外广告投放渠道
  • 石家庄 网站建设bt磁力在线种子搜索神器下载
  • 杭州做网站的公司哪些比较好桂林seo排名
  • 栾川网站开发企业产品网络推广
  • 独立网站运营营业推广是什么
  • 用html5做的简单的网站网站分析案例
  • 如何创建商业网站深圳网络运营推广公司
  • 做网站工资待遇如何网络营销策划书格式