Как передать значение, если оно равно нулю, если оно не равно нулю.ToDate() это

#javascript #typescript #fullcalendar-4

#javascript #typescript #полный календарь-4

Вопрос:

Я пытаюсь передать значение даты в плагин rrule полного календаря следующим образом

 Endate = null;

rrule: {
        freq: "Daily",
        interval: 1,
        dtstart: StartDate.toDate(),
        until: EndDate.toDate()
                        
        }
 

в моем EndDate, как вы можете видеть, я форматирую его.ToDate() .

Но теперь моя конечная дата также может быть нулевой, так что это приведет к сбою, когда я передам ее для форматирования.ToDate()

Мой вопрос в том, что если моя конечная дата равна нулю, как я могу передать это значение как просто null, и если у меня есть значение, тогда я могу.ToDate() это

я пробовал что-то вроде этого

until: EndDate == ?? || EndDate.toDate() // так что, если его значение равно нулю, передайте это значение или передайте значение, если оно не равно нулю

Но вышеупомянутое не работает.

я пробовал это

 until:EndDate === null ? null:EndDate.toDate() // this works but is there a cleaner way to do it instead of reassigning endDate to null?
 

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

1. Нет, нет более чистого способа сделать это, кроме того, что у вас есть для работы.

2. @Russ хорошо, я просто подумал, что это выглядит немного грязно

3. Как насчет EndDate ? EndDate.toDate() : null

4. Какую магию вы ожидаете?

Ответ №1:

Я думаю, что необязательная цепочка — это то, что вы ищете.

endDate?.toDate() попытается вызвать метод ToDate и вернет undefined, если EndDate равно нулю.

Если вам нужно until быть нулевым, а не неопределенным, вы можете использовать endDate?.toDate() ?? null вместо

Ответ №2:

Вы можете использовать необязательный оператор цепочки EndDate?.toDate()

https://codepen.io/niklhs/pen/oNzdaGw?editors=1111

Он не выдаст ошибку, если EndDate это либо undefined или null . Вместо этого оно вернется undefined .