То, что вы видите, это имя типа, которое является «строкой». Попробуйте typeof true
и увидите, что это "логическое значение". На самом деле typeof возвращает строковое имя типа, а не сам тип. Проверьте с помощью typeof typeof null
, typeof typeof 3
, et c.
Тип не является набором. Это может быть, если вы теоретик. ноль имеет 1 жителя. bool имеет 2. Тип string, который имеет счетное количество жителей. Это включает в себя «красный», «# ff0000», а также «мышь» и «NoiisenZ # uh @ (ru,». Вы можете установить цвет для любого из них, и браузер просто проигнорирует недопустимые. Это допустимые строки, но недопустимые цвета. Так как это строка типа, вы запрашиваете бесконечное заполнение памяти l oop, которое будет пытаться заполнить allValidColors всеми возможными строками. Но javascript и машинопись не работают таким образом. Некоторые языки программирования делайте, но они больше ориентированы на математику и логику c.
Если вы хотите набор, вы должны заполнить его самостоятельно. Я бы использовал массив для моделирования набора в этом случае.
var colors:string[] = ["red", "green", "blue"]