繁体   English   中英

Typescript 数字还是数字枚举类型?

[英]Typescript number or numeric enum type?

我正在尝试像这样创建 function:

function test_func(arg1: number: NumericEnum) {
    return number / 2 + 5;
}

其中 arg1 可以是数值或定义为 integer 的枚举值,如下所示:

enum Num {
   x = 1;
   y = 2;
}

这样 function 可以是test_func(1)test_func(Num.x)

有没有办法为arg1的类型定义定义这样的类型?

Num这样的数字枚举的值已经是number ,所以你不需要做任何特别的事情来包含它们。 我们可以说我们的 function 取任意number Num.x只是解析为数字文字1的属性访问器,因此可以使用 Num.x 调用此Num.x

function test_func(arg1: number) {
    return arg1 / 2 + 5;
}

enum Num {
   x = 1,
   y = 2,
}

test_func(1)
test_func(Num.x)

Typescript 游乐场链接

一些变化:

  • 枚举使用逗号,而不是分号;
  • test_func中的变量是arg1而不是number number是类型。

您必须以这种方式编写枚举。

enum NumericEnum {
   x = 1,
   y = 2
}

现在,下面的 function 可以接收数字或枚举作为参数。

test_func(arg1: number | NumericEnum) {
    return arg1 / 2 + 5;
}

检查我在stackblitz的实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM