我正在尝试创建一个这样的函数:
function test_func(arg1: number: NumericEnum) {
return number / 2 + 5;
}
其中 arg1 可以是数字值或定义为整数的枚举值,如下所示:
enum Num {
x = 1;
y = 2;
}
所以函数可以是 test_func(1)
或 test_func(Num.x)
有没有办法为arg1的类型定义定义一个这样的类型?
答案 0 :(得分:1)
像 Num
这样的数字枚举的值已经是 number
,所以你不需要做任何特殊的事情来包含它们。我们可以说我们的函数接受任何 number
。 Num.x
只是解析为数字文字 1
的属性访问器,因此可以使用 Num.x
调用此函数。
function test_func(arg1: number) {
return arg1 / 2 + 5;
}
enum Num {
x = 1,
y = 2,
}
test_func(1)
test_func(Num.x)
一些变化:
,
而不是分号 ;
test_func
中的变量是 arg1
而不是 number
。 number
是类型。答案 1 :(得分:0)
你必须这样写枚举。
enum NumericEnum {
x = 1,
y = 2
}
现在,下面的函数可以接收一个数字或 Enum 作为参数。
test_func(arg1: number | NumericEnum) {
return arg1 / 2 + 5;
}
在 stackblitz 检查我的实施。