есть, — оно считается и вызовется. если нет — не вызовется
! — это ты прямо указал: бля, слушай, я вот не хочу тут ебаться с типами поэтому давай будем думать, что там нет null. а он там может быть
Странная логика. Зачем мне делать проверку через ?., если я допустим строчкой выше присвоил значение полю объекта и к нему обращаюсь. Я просто напрямую обращусь к нему сказав, что оно есть с помощью !
Ну так он правильно всё аргументировал ! - это наеб компилятора ? - это вежливая просьба
Не совсем ? Это просто проверка как object.key && object.key.secondkey А вместо этого есть сокращение object.key?.secondkey
Так где наеб, если Let a: string | undefined = undefined; a = “smith”; a!.toCamelCase()
Ещё раз повторюсь, использовать ! Это плохая практика
Может у вас есть статья какая-то почему?
сколько у тебя лет коммерческого опыта?
Ну "!" говорит тайпскрипт что бы он не сообщал об ошибках типизации при отсутствии свойства у объекта. По сути это каст.
Объясни логику свою, зачем тут использовал !
function printSomeTextOnScreen(text) { ...magic... } let a = undefined a = "smith; printSomeTextOnScreen(a); Зачем тут тогда вообще ТС? Я же все равно соблюдаю контракт и правильные типы ставлю
Затем что кто-то потом залезет и де нибудь напишет a = {value:"smith}; И выйдет у тебя потом на экране неведома хрень.
Переменной присвоено значение, нет никакого смысла проверять ее на null. Если бы это был чистый js, никто бы в здравом уме не написал код Let a = undefined; a = “smth” a !== unedifbed && a.toCamelCase()
Не хочется придумывать объяснение почему так для абстрактного примера. Не думаю, что кто либо когда-то напишет именно такой код. Но ситуация вполне реально где между и инициализацией и тем что, ниже было много другого
Ну на рефакторинге кто-то отредачит переменную: теперь она не будет включать проверку функции (ну просто, не знаю… человеческий фактор). Другой человек не обязан знать твой код. И все. Никаких предупреждений, будешь поставлен перед фактом в рантайме
Мне кажется мы тебе понятно объяснили, какими другими путями можно это сделать Не используя ! Да о чем мы общаемся вообще, как чел с 4 годами ком опыта может доказывать что использование ! Это норм, я хз)))
Я и так знал, что можно делать это не используя ! Просто мое мнение заключается в том, что есть места, например, где присвоение и обращение происходят в одном месте и использовать ?. Вместо ! Не имеет смысла
Имеет. Потому что этот оператор делает то же самое, но позволяет выкинуть дополнительную проверку и не сомневаться в этом участке кода никогда
Никто бы в здравом уме в целом бы такой код не написал, потому что там логический оператор вместо if
Использовать ? Вместо ! Имеет огромный смысл! Смотри, ! Жестко говорит что значение существует, а если его нет? Тогда все крашится ? Же делает ПРОВЕРКУ на существование и выполняет код дальше только если значение существует
На почитай кстати https://brendaneich.com/2012/04/the-infernal-semicolon/
Обсуждают сегодня