169 похожих чатов

Подскажите пожалуйста глупый вопрос про инициализацию. У меня есть обьект,

поле в котором у меня возможное null (с маркером ?)

Я не хочу делать кучу ветвлений условий и прочее.

const newProject: Project = {
'id': ?projectId,
'customerID' : customerId,
'agreementType' : $event.newData.agreementType,
'agreementDate' : $event.newData.agreementDate,
'paidInDays' : Number($event.newData.paidInDays),
'requiresInvoices' : $event.newData.requiresInvoices,
'requiresTimesheets' : $event.newData.requiresTimesheets,
};

Поле id у проджекта у меня возможное null
И я хочу инициализировать мой обьект со значением переменной projectId если она есть. Или же не инициализировать вовсе это конкретное поле.

Но не могу понять, куда засунуть «?»

16 ответов

12 просмотров

projectId ?? null

Антон-😇 Автор вопроса
Oleg Safonov
projectId ?? null

Да, но как в инциализаторе это сделать ? 'id' ?? projectId ?

Антон-😇 Автор вопроса
Oleg Safonov
'id': projectId ?? null

Понимаешь.. да. По идее все верно. Но фишка в том, что в таком случае, оно проинициализует это поле с null. А мне нужно чтобы оно вовсе его не добавляло

Антон 😇
Понимаешь.. да. По идее все верно. Но фишка в то...

Тогда только через if инициализировать после создания объекта

Oleg Safonov
'id': projectId ?? undefined

Так сама пропертя будет присутствовать в объекте, просто со значением undefined

Антон-😇 Автор вопроса
Oleg Safonov
id: projectId ?? undefined

У меня на апиай будет проявляться 😂

Антон 😇
У меня на апиай будет проявляться 😂

А какой тип на API? Ему что null, что undefined, что нет поля - всё равно должно быть

Антон 😇
У меня на апиай будет проявляться 😂

Ну либо замените на project = { ... }; if (id) { project.id = id; }

Антон-😇 Автор вопроса
Oleg Safonov
А какой тип на API? Ему что null, что undefined, ч...

У меня рест апи. Если мы добавляем проект, то соответственно его айди и не должно существовать, верно ? (База сама сгенерит) А если мы апдейтим путом.. то тогда айди нам как раз и нужен

Антон 😇
У меня рест апи. Если мы добавляем проект, то соо...

Так, скажите, какой тип на вход принимает API? У него есть id?

Антон 😇
У меня рест апи. Если мы добавляем проект, то соо...

Ну @dopusteam на самом деле прав, в таком случае разницы быть не должно

Антон-😇 Автор вопроса
Raman Yazvinski
Ну @dopusteam на самом деле прав, в таком случае р...

Все. Вы были правы. Лучше сделать с андефайндом

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Any electron dev here?
Sayanth Tezro
12
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
Карта сайта