类型脚本枚举是如何工作的

117 阅读4分钟

DZone> WebDev Zone > Typescript Enums如何工作

类型脚本的枚举是如何工作的

Typescript为JavaScript引入了一个新的概念,叫做Enums。让我们来看看Enums是如何工作的,以及什么时候可以使用它们。

Johnny Simpson user avatar通过

约翰尼-辛普森

-

Aug. 09, 21 -Web Dev Zone -教程

喜欢 (1)

评论

保存

Tweet

158次浏览

加入DZone社区,获得完整的会员体验。

免费加入

类型脚本的枚举如何工作

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

对于Javascript开发者来说,枚举的概念通常是新的,但它们的理解相对简单明了。枚举为我们所写的东西增加了背景

如何定义枚举

在Typescript中可以使用Enum关键字来定义枚举。下面是一个例子。

enum Pet {
    Dog,
    Cat,
    Goldfish,
    Skeleton
}

默认情况下,每一个都将被分配一个值。所以Dog 将是0Cat1,以此类推。假设我们有一个函数,那么,它可以生成宠物。以前,我们可能是这样写的。

// Generate a Cat
generatePet(1);

现在,我们可以给我们正在做的事情添加上下文,并使用我们的枚举列表,来做这件事。

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

上面的代码等同于我们之前所做的,只是我们使用了我们的枚举。

那么,等等。为什么使用枚举?

你可能想知道**"这有什么意义?",这是个有效的问题。枚举本质上允许我们为我们正在做的事情提供更多的背景。与其让用户记住一个可能的宠物号码的列表,我们可以简单地要求他们使用枚举**列表。这也让下一个阅读我们代码的人更好地了解我们想要做什么。

数字和字符串枚举

我们可以将枚举定义为数字或字符串。让我们看一下这些细节。

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

上面,我们给了Dog 一个数字值2。之后的每一项都会递增1,所以Cat 变成3,Goldfish 变成4,等等,但你也可以随心所欲地定义它们。

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

通常我们不会把字符串和数字混在一起以避免混淆,但是我们也可以把枚举完全定义为字符串。

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

来自函数的枚举值

枚举也可以是返回值的函数。如果你在一个枚举中只定义一个值,那么函数必须放在最后。如果你把函数放在开头,那么所有的枚举都需要值。因此,下面的例子会抛出一个错误。

// 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。比如说。

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"
}

结论

在typescript中,Enums是为你的代码添加更多语义的一种强大方式。它们给你提供了一个很好的方法,让阅读你的代码的人知道你想完成什么,从而提高你所写的东西的可维护性。它们也使你的生活更轻松,因为你可以在你的代码库中引用标准常量。

希望你喜欢这份关于Typescript Enums的指南。

主题。

Typecript, javascript, web dev, web开发, 教程

本文由DZone MVB的Johnny Simpson授权发表于DZone。点击这里查看原文。

DZone贡献者所表达的观点属于他们自己。

在DZone上受欢迎


评论

网络开发 合作伙伴资源