七爪源码:TypeScript 枚举如何工作

Enums 是 Enumerations 的缩写,是预设的常量,可以由开发人员定义以在代码的其他地方使用。

七爪源码:TypeScript 枚举如何工作

对于 JavaScript 开发人员来说,枚举的概念通常是新的,但它们相对容易理解。 Enums 为我们正在编写的内容添加上下文。


如何定义 Enums

Enums 可以在 TypeScript 中使用 enum 关键字定义。 这是一个例子:

enum Pet {
    Dog,
    Cat,
    Goldfish,
    Skeleton
}

默认情况下,这些中的每一个都将被分配一个值。 所以 Dog 将为 0,Cat 为 1,依此类推。 假设我们有一个生成宠物的函数。 之前,我们可能会这样写:

// Generate a Cat
generatePet(1);

现在,我们可以为我们正在做的事情添加上下文,并使用我们的 enum 列表来做到这一点:

// Generate a Cat
generatePet(Pet.Cat);

上面的代码和我们之前做的一样,只是我们使用了我们的 Enums。


所以等等……为什么要使用 Enums?

你可能想知道,“有什么意义?” 这是一个有效的问题。 Enums 本质上允许我们为我们正在做的事情提供更多的上下文。 我们可以让用户使用 Enum 列表,而不是让用户记住可能的宠物编号列表。 这也让下一个阅读我们代码的人更好地了解我们正在尝试做什么。


数字和字符串 Enums

我们可以将 Enums 定义为数字或字符串。 让我们稍微详细地看一下这些。

enum Pet {
    Dog = 2,
    Cat,
    Goldfish,
    Skeleton
}

上面,我们给 Dog 一个数值 2。之后的每一项都会增加 1,所以 Cat 变为 3,Goldfish 变为 4,等等,但您也可以随意定义它们:

enum Pet {
    Dog = 2,
    Cat = 9,
    Goldfish = 15,
    Skeleton = 44
}

通常我们不会混合字符串和数字以避免混淆,但我们也可以将 Enums 定义为完全字符串:

enum Counting {
    One = "one",
    Two = "two",
    Three = "three"
}


Enum 来自函数的值

Enums 也可以是返回值的函数。 如果您只在 enum 中定义一个值,则函数必须放在最后。 如果你把函数放在开头,那么所有的 enums 都需要值。 因此,以下会引发错误:

// This will throw an error, since the function is at the start
// So typescript assumes all will be functions
enum Counting {
    One = getOne(),
    Two,
    Three,
}

但这不会:

enum Counting {
    One,
    Two,
    Three = getThree(),
}

上面 One 返回 0, Two 返回 1, Three 返回 getThree() 的值。 举个例子,我们的 getThree() 函数可能看起来像这样(返回值 3):

const getThree = function() {
    return 3;
}


计算的 Enums

Enums 可以被计算,(即一个计算),或者也可以引用其他 Enums。 例如:

enum FirstEnum {
    One,   // Returns "0"
    Two,   // Returns "1"
    Three  // Returns "2"
}enum AnotherEnum {
    One: FirstEnum.One, // returns FirstEnum.One, i.e. "0"
    Two: 1 + 1,         // Calculates and returns "2"
    Three: 1 * 3,       // Calculates and returns "3"
    Star: One           // Refers to AnotherEnum.One, returns "0"
}


结论

Enums 是 TypeScript 中为代码添加更多语义的强大方法。 它们让阅读你代码的人知道你想要完成什么,从而提高你所写内容的可维护性。 它们还允许您在代码库中引用标准常量,从而使您的生活更轻松。

关注七爪网,获取更多APP/小程序/网站源码资源!

展开阅读全文

页面更新:2024-03-06

标签:可维护性   都会   常量   上下文   字符串   函数   源码   定义   事情   代码   宠物   数字   更多   内容   用户   列表   工作

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top