SolidJS: ошибка машинописного текста говорит, что значение имеет тип «неопределенный», несмотря на проверку того, что это не так
У меня есть код SolidJS, например:
{value() !== undefined && <img src={srcs[value()]} />}
где
value
является сигналом. Я получаю ошибку TypeScript под
value()
говоря
Type 'undefined' cannot be used as an index type.ts(2538)
Что это значит и как это исправить без
// @ts-ignore
?
1 ответ
Typescript не знает, что каждый раз при вызове он возвращает один и тот же результат. Вы можете использовать ненулевой оператор утверждения для второго
value()
{value() !== undefined && <img src={srcs[value()!]} />}
или вы можете использовать<Show>
с обратным вызовом.
Show
будет передавать значение
when
, если он отображается, к обратному вызову, и его тип не может быть нулевым:
<Show when={value()}>{value => <img src={srcs[value]} />}</Show>