https://www.typescriptlang.org/play/?ssl=19&ssc=3&pln=1&pc=1#code/C4TwDgpgBAsiAq5oF4oG8oDsCGBbCAXFAM7ABOAlpgOZQC+UAPlgK64BGEZA3AFC8AzFpgDGACgBMASj6DhI4BQD2mKBWIB5dgCsICqGIBu2ADYtCsBEinpeUe1DIRgLMqtCQlAg8bMQbyIFQAORKOnrAwXx0-EKiiipQceK+5kRwiJA2aHYOFN5i6lq6Ckam5lLZuQ4OIirESiYQAHQmStRlfs04+DLVNQMA9INQAApkSpBkoCE9EMFQACZKEMRYSsBQEAAe6puJHtDBGUjBzf0DDsNjE1MzwXMLy6vrmzt7UAdIs2ycZMH9GL9fIGQ5eHzlfxQQKoULhBTBKqXex1TANJqtdqdczdPD+Pg1GJ0bhAA
Ты сказал ts что в переменную value, можно положить объект или число, там где ты проверяешь на объект в функции ts не знает что это за объект и прошла ли проверка вообще ( плюс у тебя проверка не корректная на null или [] например вернет true ) , советую вынести тип объекта в отдельный интерфейс или тип, а когда проверка прошла - используй " value as MyObjectType "...
Максим выше всё правильно написал про “хз, что эта функция делает”, но про as MyObjectType — такое себе ты можешь описать свою функцию как type guard, тогда будет ок https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards
https://www.typescriptlang.org/play/#code/C4TwDgpgBAgg7hAzgewLYQCrmgXigbygDsBDdALikWACcBLIgcygF8AoN0SKAWRC2554SNJmxQAPsQCuqAEYQaAbg4AzaUQDGwOsiJQ6iAHLJgR2QppQAFADcSAG2kRKfARACUle0+iGoAKIAHppOACYQADxu2AA0MvKKAHwEbFDpUAD0mVAOyIx0mlAAFooQaRk0EMDSNPq0zlk5xSSaANZs7GzqWjp6BojCKOjuNj7OrvzYXlDjfoiwCMNi3PgV6dm5+YUlZetQVTV1UA3Qmy3tnWoa2rr6PZp2jhO8U5AeqRkGqjaGJmYWRRPXweD5rL5fTR6FAOCAAOjyjGBzjhpHQHhUXy6XzoP2shiGoncyM8YP2kOhyFhCPyJNRZE8mIy7BYKg4QA
Обсуждают сегодня