Typescript не может сказать, что если вы возьмете что-то типа 1 | 2 | 3
и добавите к нему, то его тип станет 2 | 3 | 4
. Вместо этого результатом будет просто number
, что слишком широко для ожидаемого заголовка. Вам нужно будет подтвердить, что это правильный тип.
<Heading level={(componentLevel + 1) as 1 | 2 | 3 | 4 | 5 | 6}>My Component Heading text</Heading>
Возможно, вы захотите присвоить этому типу псевдоним, чтобы было легче ссылаться на:
type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6
type Props = {
level?: HeadingLevel,
children: string
}
// ...
<Heading level={(componentLevel + 1) as HeadingLevel}>My Component Heading text</Heading>