Ключевой момент, о котором следует помнить, это то, что типы являются концепцией Typescript, и когда он компилируется в JavaScript, все объявленные типы удаляются, и проверки времени выполнения типов не выполняются (если вы явно не закодировали их в коде).
Это означает, что во время выполнения, даже если в вашем TypeScript вы сказали, что ожидаете строку со значениями 'Low' | 'Med' | 'High';
, технически в мире JavaScript, эти строки могут иметь любое значение, и вы будете никто не мудрее. Куда я пойду с этим?
Тип «строка» не может быть назначен типу «Уровень». TS2322
Причина, по которой вы получаете эту ошибку, заключается в том, что проверка типов, являющаяся реализацией перед компиляцией, пытается смягчить приведенный выше пример, где JavaScript не будет проверять, является ли строка одним из: 'Low' | 'Med' | 'High';
. Итак, ваша задача - убедиться, что компилятор, который вы проверили, helperLevel
, действительно будет одним из 'Low' | 'Med' | 'High';
.
Для этого обновите свой html до: <HelperText level={helperLevel as Level} />