Почему машинописный текст позволяет вводить числа в перечисление, если одно значение установлено на число? - PullRequest
2 голосов
/ 04 августа 2020
 enum Type{
    Video, 
    BlogPost = "BLOG_POST", 
    Quiz = "QUIZ"
}

У меня есть следующий код в сценарии типа, если у меня есть функция createContent

const createContent = (contentType:Type) => {
    console.log(contentType)
}

и вызываю эту функцию, используя

createContent(10)

, это работает. Однако, если в следующем коде все типы перечислений установлены как строки, это не позволяет передавать число. Почему это?

enum Type{
    Video = "VIDEO", 
    BlogPost = "BLOG_POST", 
    Quiz = "QUIZ"
}

1 Ответ

1 голос
/ 04 августа 2020

Поскольку экземпляр перечисления без объявленного значения - это просто увеличивающееся число. Если бы вы не записывали в него строки, это означало бы что-то вроде этого:

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

Следовательно, (если вы оставите одно пустое), ваше перечисление Type не относится к типу string, а скорее string | number, и поэтому вам разрешено передавать число ИЛИ строку.

...