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

А любителей document.querySelector(selector)?.click() // or document.querySelector(selector)?.addEventListener(...) ждет отдельный котел, так как это худшее что

можно придумать - сделать вид, что это ок, что не оказалось эл-та сделать "проверку" и вызвать функцию
а потом бегай по коду и ищи почему логика перестала работать, а это какой-то гений "обработку" (читай затычку) сделал

9 ответов

18 просмотров

optional chaining как раз и есть та самая проверка

Denis-Chernov Автор вопроса
Mikhail Chukhnin
optional chaining как раз и есть та самая проверка

так и тут я сказал, что сделать "проверку", хотя по факту это просто избегания вылета исключения, там где он и должен был появиться, так как нарушена, какая-то логика, либо это и задуманное поведение, но его лучше как-то оформить. Но в 90% случаев я видел что люди втыкают optional chaining чтоб заткнуть TSи сделать вид "обработки"

Denis Chernov
так и тут я сказал, что сделать "проверку", хотя п...

По этой логике if это тоже "избегание" Optional chaining из js, если что

Mikhail Chukhnin
По этой логике if это тоже "избегание" Optional ch...

Все программирование это "избегание" ошибок🙂

Denis-Chernov Автор вопроса
Mikhail Chukhnin
По этой логике if это тоже "избегание" Optional ch...

вот тут вообще непонятно к чему это. Затыкают TS то что он им тычет мол тут возможно null, а ты отмахиваешься чейнингом. Да и вообще этот оператор слишком часто юзают там где он не должен быть. Оператор реально крутой и полезный, но он не виноват, что им "забивают" гвозди. Просто, иногда людям надо думать, а точно ли "ничего не сделать", это то что я хочу сделать в данном случае, а не указать явно на последствие отсутствия эл-та (или какого-то поля) Игнорирование проблемы != ее решение Только если это не осознанно запланированное поведение

Denis Chernov
вот тут вообще непонятно к чему это. Затыкают TS ...

Можете рассказать в чем отличие в следующих случаях по вашему мнению? handle?.method() if (handle) { handle.method() }

Denis-Chernov Автор вопроса
Mikhail Chukhnin
Можете рассказать в чем отличие в следующих случая...

1ый вариант вполне жизнеспособен, если так и задумано, но представь, что handle точно должен был бы быть. и тогда вторым вариантом должен быть скорее if (!handle) { throw new Error('no required handle') } handle.method() думаю так разница чуть нагляднее

Denis Chernov
1ый вариант вполне жизнеспособен, если так и задум...

тогда пропадает смысл всего, что было написано вами выше, делай хорошо не делай плохо, используй когда нужно и не используй когда не нужно

Denis-Chernov Автор вопроса
yanovich
тогда пропадает смысл всего, что было написано вам...

скорее: думай когда что нужно использховать) речь шла именно о осознанном выборе варианта (именно поэтому я расписывал 3 сценария) И я ни разу не написал: так никогда не пишите, всегда была указка на условия или что "это был осознанный выбор"

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта