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>
Другие вопросы по тегам