详细版易学版TypeScript - 元组 枚举

这篇具有很好参考价值的文章主要介绍了详细版易学版TypeScript - 元组 枚举。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

详细版易学版TypeScript - 元组 枚举

一、元组(Tuple)

数组:合并了相同类型的对象

const myArr: Array<number> = [1, 2, 3];

元组(Tuple):合并了不同类型的对象

// 定义元组时就要确定好数据的类型,并一一对应
const tuple: [number, string] = [12, "hi"];
// 添加内容时,不用一一对应,只要是联合类型里的类型就可以push
tuple.push(34);
tuple.push("vite");
//tup.push(true); // 报错,因为越界了,联合类型里没有boolean类型

二、枚举

1、前端为什么要使用枚举

  • 去魔数化:一旦有个数值改动,不用再全局替换匹配

  • 语义化:可以直观通过值推导出含义,例如,通过STATUS.SUCCESS就可以大概猜出含义

  • 定义一体化:枚举值和枚举描述写在了一起,不分散

  • 使用方便:无需额外的过滤器,就可以通过枚举名称/枚举值获得枚举含义

2、关键字 enum

使用枚举可以清晰地表达意图

使用枚举可以定义一些带名字的常量

ts支持数字的和基于字符串的枚举

3、定义一个数字枚举

(1)枚举成员的值默认自增长,每个枚举成员的值都是不同的
// 如果没有初识值,那么Direction.Up的值默认是0,Down的值是1,Left的值是1,Right的值是3
enum Direction1 {
    Up,
    Down,
    Left,
    Right
}

// 如果Up的值设置为1,其余枚举成员会从1开始自动增长 
// 也就是说,Direction.Up的值为1,Down的值是2,Left的值是3,Right的值是4
enum Direction2 {
    Up = 1,
    Down,
    Left,
    Right
}

// 如果Left的值设置为6,那么Up的值为0,Down的值是1,Right的值是7(规则:根据上一个值递增)
enum Direction3 {
    Up,
    Down,
    Left = 6,
    Right
}

console.log("Direction1--->", Direction1);
console.log("Direction2--->", Direction2);
console.log("Direction3--->", Direction3);

查看打印结果:

详细版易学版TypeScript - 元组 枚举

枚举里属性值不可以相同,如果值相同,后面的属性值会干掉前面的属性值

// 假如Down和Left的值都是6,'6':'Down'被干掉了
enum Direction4 {
    Up,
    Down=6,
    Left = 6,
    Right
}
console.log("Direction4--->", Direction4);

查看打印结果:

详细版易学版TypeScript - 元组 枚举
(2)数字枚举可以被混入到计算的和常量成员
const getVal = (): number => 1;
enum Sum {
    A,
    B = getVal(),
    C // 报错,没有初始化的C不可以放在包含计算的B的后面,要么B放到最后,要么给C也赋值
}

4、定义一个字符串枚举

在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。

字符串枚举没有自增长的行为,字符串枚举可以很好的序列化。

enum Str {
    Up = "Up",
    Down = "Down",
    Left = "Left",
    Right = "Right"
}

5、枚举可以混合字符串和数字成员,但不建议这样做

enum StrNum {
    Up = "Up",
    Down = 3
}

6、如何使用枚举

enum TestRes {
    No = 0,
    Yes = 1
}
const myFunc6 = function (name: string, message: number): void {
    //...
}
console.log(myFunc6('hi', TestRes.No));

7、常数枚举

使用 const enum 定义

常数枚举与普通枚举的区别:它会在编译阶段被删除,并且不能包含计算成员

/*
 编译后(也就是js文件中),下面的定义会被删除
 const enum Obj {
     Test1,
     Test2,
     Test3 = "hi",
 }
*/
const enum Obj {
    Test1,
    Test2,
    Test3 = "hi", // 可以包含文字值
    Test5 = "hi".length,  // 报错,不能包含计算成员
}
console.log(Obj.Test1);
console.log(Obj.Test2);
console.log(Obj.Test3);

查看js文件:

详细版易学版TypeScript - 元组 枚举

8、外部枚举

使用 declare enum 定义

主要应用在声明文件的位置

只会用于编译时检查,编译结果中会被删除

/*
编译后(也就是js文件中),下面的定义会被删除
 declare enum OutEnum {
    Atest,
    BTest,
 }
*/ 
declare enum OutEnum {
    Atest,
    BTest,
}
console.log(OutEnum.Atest);

查看js文件:

详细版易学版TypeScript - 元组 枚举

js运行报错,因为外部枚举的定义在编译后被删除了,所以编译后的js里也找不到OutEnum的声明:

详细版易学版TypeScript - 元组 枚举

9、常数枚举和外部枚举一起定义

// 可以理解为遵循常数枚举规则
declare const enum TestEnum {
    Test11,
    Test12,
    Test13,
}
console.log(TestEnum.Test11);

查看js文件:文章来源地址https://www.toymoban.com/news/detail-438451.html

详细版易学版TypeScript - 元组 枚举

到了这里,关于详细版易学版TypeScript - 元组 枚举的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】元组(tuple)详解

    元组(tuple)是 Python 中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。 元组也可以看做是 不可变的列表 ,通常情况下,元组用于保存无需修改的内容。 从形式上看,元组的所有元素都放在一对小括号( )中,相邻元素之间用逗号,分隔,

    2024年02月05日
    浏览(49)
  • 《Python入门到精通》元组 Tuple 详解,元组常用函数

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 「元组」 使用小括号 () 包裹, 「元素」 之间使用逗号 , 间隔。元组与列表相似,但元组的元素 「不可变」

    2024年02月15日
    浏览(53)
  • Python中的元组(tuple)

    Python中的元组(tuple)是一种不可变的有序序列,与列表(list)类似。元组中的元素可以是任何类型的对象,并且可以包含重复的元素。元组一旦创建就无法修改。 以下是Python元组的一些常用操作: 1. 创建元组:可以使用小括号()或者tuple()函数来创建一个元组。 ```python my_tuple =

    2024年02月04日
    浏览(51)
  • 08列表(list)与元组(tuple)

    [数据1,数据2,数据3,数据4,......] 列表可以存储多个数据,数据之间的逗号以英文分割而且可以数据是不同类型的数据,列表是可变数据类型。 空列表 list_data = [] 或者 list_data = list() 列表的创建 列表的作用是⼀次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、

    2023年04月12日
    浏览(35)
  • C++11 新特性:tuple 元组

    std::tuple 是 C++11 中引入的一个非常强大的类型,它允许将多个类型不同的值,组合成单一对象。 std::tuple 非常适合用于那些需要返回多个值的场景,而且它的灵活性和通用性使得其成为现代 C++ 编程中不可或缺的一部分。下面,我们将探讨一下 std::tuple 的内部实现、使用场景

    2024年04月14日
    浏览(42)
  • Python 元组tuple的创建与使用

    定义:定义元组使用 小括号 ,元素用逗号隔开。 特点:一个元组可以存储多个元素,元素可以是不同的数据类型,元素可以重复,元组内的数据是不可修改的(某个元素是列表,则可以对该列表进行新增删除修改操作),也不能进行删除。 组包方式创建元组: 通过 tuple(数组

    2024年02月12日
    浏览(42)
  • 一文掌握python常用的tuple(元组)操作

    目录 1. 元组的创建 2. 访问元组元素 3. 切片操作 4. 合并元组 5. 复制元组 6. 内置函数与方法 7. 元组拆分 8. 星号表达式在元组中的应用 9. 遍历元组 10. 元组的嵌套 11. 元组与条件判断和逻辑运算 12. 常见应用场景 13. 元组与枚举(Enum) 14. 元组推导式 15. 元组与匿名函数(Lambd

    2024年03月09日
    浏览(46)
  • Python学习笔记 - 探索元组Tuple的使用

    元组(Tuple)在Python中是一种不可变的数据结构,用于存储有序的元素。 本文详细探讨了Python元组的各个方面,包括基本操作和与其他数据结构的比较。 概述了元组的基础特性,例如不可变性、有序性和索引。通过多个实例详细解释了如何进行元组的创建和查询。 除此之外

    2024年02月07日
    浏览(56)
  • python元组tuple添加元素的两种方法

    方法一 :可以使用python内置的__add__()方法,使用该方法为python元组添加元素时,需要使用元组来对象来进行调用,然后将需要添加的元素,以元组的数据类型进行传递,该方法并需修改调用对象,而是以新的元组进行返回,具体可见下方的实例代码。 方法二 :将python的元组

    2024年02月12日
    浏览(39)
  • Python:list列表与tuple元组的区别

    在Python中, List(列表) 和 Tuple(元组) 都是用于 存储一组有序元素的数据结构 ,但它们有一些关键的区别,包括可变性、性能、语法等方面。 用法: 用方括号[]表示。 支持增删改操作,是可变的。 适用于存储有序的、可变的元素集合。 示例: 用法: 用圆括号()表示。

    2024年01月18日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包