Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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 如果一个值被设置为一个数字,为什么typescript允许在枚举中输入数字?_Javascript_Typescript_Enums - Fatal编程技术网

Javascript 如果一个值被设置为一个数字,为什么typescript允许在枚举中输入数字?

Javascript 如果一个值被设置为一个数字,为什么typescript允许在枚举中输入数字?,javascript,typescript,enums,Javascript,Typescript,Enums,如果我有一个函数createContent enum Type{ Video, BlogPost = "BLOG_POST", Quiz = "QUIZ" } 并使用 const createContent = (contentType:Type) => { console.log(contentType) } 这很有效。但是,如果在以下代码中将所有枚举类型设置为字符串,则不允许传入数字。为什么会这样 cre

如果我有一个函数
createContent

 enum Type{
    Video, 
    BlogPost = "BLOG_POST", 
    Quiz = "QUIZ"
}
并使用

const createContent = (contentType:Type) => {
    console.log(contentType)
}
这很有效。但是,如果在以下代码中将所有枚举类型设置为字符串,则不允许传入数字。为什么会这样

createContent(10)

因为没有声明值的枚举实例只是一个递增的数字。如果您没有向其写入字符串,则其含义如下:

enum Type{
    Video = "VIDEO", 
    BlogPost = "BLOG_POST", 
    Quiz = "QUIZ"
}
因此,(如果将其中一个保留为空),您的枚举
类型
不是
字符串
,而是
字符串|数字
,因此您可以传递数字或字符串

enum Type{
    Video = 0, 
    BlogPost = 1,
    Quiz = 2
}