1. Перед return
поставьте if(!gif) return null;
и станет лучше.)
Собсно суть логична: вы сами написали что gif может быть undefined
, попытка получения свойства у undefined
(gif.<some>
) - очевидная ошибка.
Вы должны заранее обработать такой случай и принять меры.
object
в современном ts занчит просто {}
без всяких свойств. Если вам нужен любой объект с любыми свойствами, то используйте Record<string, any>
. Однако по хорошему никаких any
быть не должно, вам следует чётко описать структуру получаемого объекта.
2. Ничего не понятно. useOnScreen
- это нестандартных хук. Реализаций в гугле полно разных. Так что приведите его код и скажите, что вы хотите от него добиться.