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
}