Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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
接受任何枚举的Typescript函数_Typescript - Fatal编程技术网

接受任何枚举的Typescript函数

接受任何枚举的Typescript函数,typescript,Typescript,我想创建一个接受任何枚举的函数。比如说 function AcceptOne(one: Enumerator) {} 使用枚举 enum Animal { Dog = 'Dog' } 然后打电话 AcceptOne(Animal.Dog); 但是我得到了错误 “Animal”类型的参数不能分配给“Enumerator”类型的参数 “无法确保参数是枚举,因为TS中的枚举不是从公共祖先或接口继承的。”,取自 假设您的枚举只有字符串值,您也可以将one类型更改为string,然后这些枚举

我想创建一个接受任何枚举的函数。比如说

function AcceptOne(one: Enumerator) {}
使用枚举

enum Animal {
    Dog = 'Dog'
}
然后打电话

AcceptOne(Animal.Dog);
但是我得到了错误

“Animal”类型的参数不能分配给“Enumerator”类型的参数

“无法确保参数是枚举,因为TS中的枚举不是从公共祖先或接口继承的。”,取自

假设您的枚举只有字符串值,您也可以将
one
类型更改为
string
,然后这些枚举值中的任何一个都可以工作:

enum Animal {
    Dog = 'Dog'
}

enum Food {
    Pie = 'Pie'
}

function AcceptOne(one: string) {
  console.log(one)
}

AcceptOne(Animal.Dog);
AcceptOne(Food.Pie);

和枚举是两种截然不同的东西。请说明一种可以接受“任意”枚举的情况。枚举是不安全的。在任何情况下都不要这样做。看看这个例子。枚举也是可变的