+ ts
В компоненте есть пропс (необязательный) его тип - объект
props.myObject
когда обращаюсь к полям этого объекта props.myObject.name, то очевидно, линтер подсказывает, что props.myObject может быть undefined
добавляя проверку:
if (!props.myObject) {
return
}
props.myObject.name
проблема с object is possibly undefined решается
НО
как только я использую следующую конструкцию
if (!props.myObject) {
return
}
arrayOfObjects.find((currentObject) =>
currentObject.name === props.myObject.name
)
внутри стрелочной функции линтер выдает, что props.myObject может быть undefined не смотря на проверку выше
пример c find - абстракнтый, любая вложенность в метод сразу провоцирует линтер как будто бы "забыть" о проверке выше
Не совсем понятно почему так и как это решить, кроме как прямой проверкой внутри стрелочной функции
Может кто встречался с такой проблемой?
Ошибка или предупреждение?
ошибка) и отключать ее не хотелось бы цель - понять почему линтер "забыл" о проверке выше и как это исправлять
небольшие изменения, ругается не линтер, а сам ТС
Если что нашел (как мне кажется) причину такого поведения props - внутри все равно проки обертку содержит и когда производится некие действия с пропсом, то тс (зная, что он необязательный) выводит предупреждение о том, что пропс мог быть и перезаписан в undefined в течение работы некой функции решением является сохранение пропса в константу и проверки на undefined уже самой константы, что явно указывает, что в undefined эта константа уже обратиться не может
Обсуждают сегодня