@typescript_ru

Страница 370 из 669
Mike
05.10.2017
19:54:05
Смотря что ты хочешь

Олег
05.10.2017
19:54:09
это разные типы

da horsie
05.10.2017
19:54:16
а проверять надо именно на undefined, без null?
ну у меня там тип ожидается number | undefined

Дмитрий
05.10.2017
19:54:32
Потому что в не стрикт режиме undefined пожно переопределить
сказки нет уже таких браузеров, в которых это работает

Google
da horsie
05.10.2017
19:54:33
что, как я понимаю, тоже самое что просто number с точки зрения TS

skycoder
05.10.2017
19:54:44
просто есть каноничное == null это проверка на null и undefined идеальный кейс когда ожидается наличие\отсутствие значение

Олег
05.10.2017
19:55:01
это не каноничная

Дмитрий
05.10.2017
19:55:25
довольно-таки каноничное

Олег
05.10.2017
19:55:32
== вообще нигде не канонично

Дмитрий
05.10.2017
19:55:40
ноуп

Олег
05.10.2017
19:56:04
йоуп

Дмитрий
05.10.2017
19:56:10
в том же еслинте в правиле, запрещающем использование ==, есть исключение специально для этого кейса

йоуп
а ты юморист

Потому что null ннжн

Олег
05.10.2017
19:56:54
есть конкретные типы

Дмитрий
05.10.2017
19:56:59
хуипы

Google
Дмитрий
05.10.2017
19:57:06
(да, я тоже юморист)

Олег
05.10.2017
19:57:08
ждать при сравнение с null что отбросит undefined

ну такое

skycoder
05.10.2017
19:57:23
такое, потому что == - нестрогая проверка

это рекомендованный способ

Дмитрий
05.10.2017
19:57:34
skycoder
05.10.2017
19:58:05
вот для других кейсов оправдан запрет, всех комбинаций нестрогих проверок сложность запомнить но конкретно этот кейс хорош

skycoder
05.10.2017
20:00:07
альтернативы // #1 function foo (x = null) { // используем значение по умолчанию и не паримся о undefined if (x === null) {} // но такое себе, мы можем забыть дать по умолчанию null, а привычка делать == null спасет нас на проде } // #2 if (x === null || x === undefined) {} // без комментариев просто

Дмитрий
05.10.2017
20:01:33
Боже, храни типизацию и strictNullCheck

или как оно там у нас называется

Олег
05.10.2017
20:01:53
оооочень сложна, эта же надо || и второе условие

if (!x) не?

skycoder
05.10.2017
20:02:32
а вот !x это _очень_ опасно

Олег
05.10.2017
20:03:34
ладно, ладно. давайте без срачей продолжать.

это вопрос про вкусовщину

skycoder
05.10.2017
20:03:43
потому что '' - это вполне себе объект, это данные, но будет false при приведении к boolean

это не вкусовщина, это просто уже не проверка на null и undefined, это вдогонку зацепит 0, возможно [], и ''

в этом весь смысл запары людей о == null и undefined

Дмитрий
05.10.2017
20:07:16
if (!x) не?
ну не, это как-то совсем

Google
Artur
05.10.2017
20:13:18
сказки нет уже таких браузеров, в которых это работает
Недавно в хроме воспроизводил, внутри функции вполне переопределяется

Дмитрий
05.10.2017
20:14:33
кому это придет в голову

впрочем, == null от этого тоже спасает

Олег
05.10.2017
20:15:34
da horsie
05.10.2017
20:15:39
а правильно я понимаю, что TS позволяет вернуть undefined из foo(): number?

или я флаг какой забыл установить?

Олег
05.10.2017
20:16:55
Artur
05.10.2017
20:17:12
это если аргумент так назвать
Не только https://stackoverflow.com/questions/44778687/why-inside-function-we-can-override-undefined-but-cant-in-window-object-in-js

Но да, это дичь

Олег
05.10.2017
20:17:32
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html

Artur
05.10.2017
20:17:38
void 0 или ==null нравятся больше

da horsie
05.10.2017
20:17:46
strictNullChecks
точто, забыл. обычно еще какие-то два вместе с ним советуют, напомните, пожалуйста?

Artur
05.10.2017
20:19:00
Да просто strict

da horsie
05.10.2017
20:19:31
вах конфетка!

спасибо

Дмитрий
06.10.2017
01:53:58
Вот что называется "догматизм"

Алексей
06.10.2017
04:23:00
== вообще нигде не канонично
== null вполне себе часто используется (но именно в такой комбинации - для проверки null и undefined

Google
andretshurotshka?❄️кде
06.10.2017
06:29:38
чет тихо

Алексей
06.10.2017
07:05:40
Например в lodash.isNil такое
Видели что у него под капотом? !== null ... я за lodash (и аналоги) но создавать метод для проверки на null и undefined кажется большим overkill

Aleh
06.10.2017
07:06:11
isEven

andretshurotshka?❄️кде
06.10.2017
07:18:56
ну потому что point free

Алексей
06.10.2017
07:19:25
рамда c тем же isNil норм живет =) И код становится проще и понятнее
если писать чисто в FP стиле - то я понимаю зачем isNil, а вот если пишите в OOP стиле то это мягко говоря странно

Aleh
06.10.2017
07:19:49
?

Vladimir
06.10.2017
07:20:46
Какая разница?

Это довольно частая проверка

Ivan
07.10.2017
15:32:21
да думаю одинаково. Просто html5 и C# фокусируются на немножко разных вещах

в html5 хочешь не хочешь, придётся разбираться как весь этот кошмар работает. А в Юнити полный plug and play :)

Igor
07.10.2017
15:38:24
HTML5 игры тебя большему научат, чем c# фреймворки
Чему? Как писать приложения без архитектуры, заботясь только о перформансе. Как-то портировал html5 игру на android+kotlin, обплювался с этого “процедурного” стиля, свойственного джиесерам.

andretshurotshka?❄️кде
07.10.2017
16:07:36
>писать про ооп человеку с хаскеллом на аве

Google
Adam
07.10.2017
16:09:21
я давно уже понял, что здесь обсуждается, в основном, допустимо ли == или всё-таки === ?

Igor
07.10.2017
16:10:11
Ну не надо, я на работе ООП пишу. Так то ООП можно и на es6, токо вот джиесеры не вкурсе про солид, cqs и тд и все равно пишут процедурно

Ivan
07.10.2017
16:24:35
э

эээ вообще странно что в этом чатике об этом разговор пошёл

может в html5gamedev переместите? :)

Adam
07.10.2017
16:25:52
так много информации поступает, что не успеваешь читать и приходиться скроллить?

Ivan
07.10.2017
16:59:14
@angmarr да я про то же - на JS и TS надо писать блин так чтобы можно было портировать в случае чего

вот кстати ядро тайпчекера в ts https://raw.githubusercontent.com/Microsoft/TypeScript/master/src/compiler/checker.ts

Страница 370 из 669