Как присвоить значение даты значению объекта, которое может быть неопределенным в Javascript

#javascript #reactjs #typescript #graphql

#javascript #reactjs #typescript #graphql

Вопрос:

Короткая версия: я хочу написать проверку, в которой говорится, что если эта часть данных из запроса GraphQL не определена, установите для нее значение 1 неделя назад. Как мне записать это в возвращаемом файле в файле typescript? Это то, что я пытался:

 {data?.program?.flagPageVisits?.edges?.[1]?.node?.createdAt === undefined ? (data.program.flagPageVisits.edges.[1].node.createdAt = new Date(moment().subtract("days", 7).format("DD-MMM-YYYY"))) : ""}
  

Я создал новую таблицу LastPageVisits и хочу показывать строки в таблице с красной точкой только в том случае, если это «новая» строка для пользователя, то есть она была создана с момента их последнего посещения. Если значение (предпоследнего) LastPageVisit не определено, я хочу установить его равным 1 неделе назад. Как я могу записать эту проверку в функцию возврата React / Typescript (данные поступают из запроса GraphQL)?

Комментарии:

1. Когда я перехожу к установке значения, я получаю сообщение об ошибке, потому что левая часть инструкции не определена. Я также пытался typeof data?.program?.insightFlagPageVisits?.edges?.[1]?.node?.createdAt === "undefined"

2. Зачем пытаться сделать так много в одной строке кода? Ваш код будет более управляемым const node = data?.program?.flagPageVisits?.edges?.[1]?.node node?.createdAt , например, как и затем использовать. И извлеките присваивание из троичного условия.

3. @jarmod спасибо за отзыв. typescript подчеркивает const при определении узла и говорит ожидаемое выражение. я также не думаю, что это помогает с неопределенным вопросом, который у меня есть. есть мысли по любому из этих вопросов?