Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 类型脚本编号还是数字枚举类型?_Javascript_Typescript_Typescript Typings - Fatal编程技术网

Javascript 类型脚本编号还是数字枚举类型?

Javascript 类型脚本编号还是数字枚举类型?,javascript,typescript,typescript-typings,Javascript,Typescript,Typescript Typings,我正在尝试创建一个如下函数: function test_func(arg1: number: NumericEnum) { return number / 2 + 5; } enum Num { x = 1; y = 2; } 其中arg1可以是数字值,也可以是定义为如下整数的枚举值: function test_func(arg1: number: NumericEnum) { return number / 2 + 5; } enum Num {

我正在尝试创建一个如下函数:

function test_func(arg1: number: NumericEnum) {
    return number / 2 + 5;
}
enum Num {
   x = 1;
   y = 2;
}

其中arg1可以是数字值,也可以是定义为如下整数的枚举值:

function test_func(arg1: number: NumericEnum) {
    return number / 2 + 5;
}
enum Num {
   x = 1;
   y = 2;
}

因此函数可以是
test\u func(1)
test\u func(Num.x)


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

您必须以这种方式编写enum

enum NumericEnum {
   x = 1,
   y = 2
}
现在,下面的函数可以接收数字或枚举作为参数

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

检查我的实现。

Num
这样的数字枚举的值已经是
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
    <代码>编号
    是类型

至少要使签名语法正确,您需要将其更改为
test_func(arg1:number | Num)
function test_func(arg1:number){return arg1/2+5;}
枚举值已经是
number
,这样就足够了: