Typescript имеет литеральные типы , тип, представляющий одно значение. Типы констант будут выведены в литеральный тип, представляющий значение, которое им назначается. Поэтому, когда вы объявляете const color = 'Red'
, тип color
фактически будет строковым литералом типа 'Red'
, а не string
.
Typescript делает это для того, чтобы проверить как можно больше вашего кода. В этом случае, если вы подумаете об этом, из этого кода не может быть достигнуто дело Green
, поэтому, вероятно, в этом коде есть что-то недопустимое (обычно мы не хотим писать мертвый код).
Если вы хотите, чтобы тип константы был просто string
, вы можете ввести константу вручную:
const color: string = 'Red';