
Евгений
27.04.2018
07:43:37
я понимаю в чем ошибка. думаю как решить. идеально - в один фаил поместить

Sukhrob
27.04.2018
07:44:39
проблема с пустым модулем
как вариант, можно require задействоввать, чтобы находу подгружать нужную зависимость
я иногда такое использую, но это не чистая работа
Это проблема не реализации, а проектирования. Где-то логика нарушена. И все.

Google

Евгений
27.04.2018
07:48:00
модуль обработки вебсокетов (А) у него на каждое подключение создается экземплар для обработки клиента (класс B). В проц... спасибо нашел ошибку проектирвоания )

Alice
27.04.2018
07:52:12
Лучше всего завести правило, что на уровне модуля только стейтменты и никаких экспрешенов за исключением точки входа.
Ну и мейби за исключением нескольких других модулей, которые делают только сайд эффекты.


Евгений
27.04.2018
07:55:19
короче надо больше отдыхать... для меня редкость такие ошибки, уже не первый год программировании
Спасибо за помощь!

Sukhrob
27.04.2018
08:01:13

Dmitrii
27.04.2018
18:17:05
как сделать unset некоторым полям в compilerOptions при наследовании через extends ?
вроде null помог

from
27.04.2018
18:32:47
https://www.typescriptlang.org/play/index.html#src=type%20SessionCredentials%20%3D%20%7B%20sessionId%3A%20string%20%7D%3B%0D%0Atype%20UserCredentials%20%3D%20%7B%20username%3A%20string%3B%20password%3A%20string%20%7D%3B%0D%0Atype%20AuthCredentials%20%3D%0D%0A%20%20%7C%20SessionCredentials%0D%0A%20%20%7C%20UserCredentials%0D%0A%0D%0Afunction%20authorize(platform%2C%20authCredentials%3A%20AuthCredentials)%20%7B%0D%0A%20%20%20%20if%20(%3CSessionCredentials%3EauthCredentials)%20%7B%0D%0A%20%20%20%20%20%20%20%20console.log(authCredentials.sessionId)%0D%0A%20%20%7D%0D%0A%7D%0D%0A
^ почему не работает type guard?

Google

Morsik
27.04.2018
18:34:43
потому что ты не правильно его используешь

Dmitry
27.04.2018
18:35:00

from
27.04.2018
18:35:09
ну эм я по доке делаю
Подскажите как правильно проверить
а, блин

Le
27.04.2018
18:35:33

Morsik
27.04.2018
18:35:44

Le
27.04.2018
18:35:46
ага
не

from
27.04.2018
18:36:32
http://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types

Le
27.04.2018
18:36:37
false это ж boolean, в смысле?

Morsik
27.04.2018
18:37:19
не, именно false

from
27.04.2018
18:37:37

Morsik
27.04.2018
18:37:40
хотя можно обобщить до false-значений

Dmitry
27.04.2018
18:37:48

from
27.04.2018
18:37:49
https://www.typescriptlang.org/play/index.html#src=type%20SessionCredentials%20%3D%20%7B%20sessionId%3A%20string%20%7D%3B%0D%0Atype%20UserCredentials%20%3D%20%7B%20username%3A%20string%3B%20password%3A%20string%20%7D%3B%0D%0Atype%20AuthCredentials%20%3D%0D%0A%20%20%7C%20SessionCredentials%0D%0A%20%20%7C%20UserCredentials%0D%0A%0D%0Afunction%20authorize(platform%2C%20authCredentials%3A%20AuthCredentials)%20%7B%0D%0A%20%20%20%20if%20(%3CSessionCredentials%3EauthCredentials.sessionId)%20%7B%0D%0A%20%20%20%20%20%20%20%20console.log(authCredentials.sessionId)%0D%0A%20%20%7D%0D%0A%7D%0D%0A
обновил
стало только хуже))

Le
27.04.2018
18:38:00

Dmitry
27.04.2018
18:38:17

Le
27.04.2018
18:38:24
null и undefined это типы, не только значения

Google

Morsik
27.04.2018
18:38:36

Dmitry
27.04.2018
18:39:51

from
27.04.2018
18:40:10

Ivan
27.04.2018
18:40:27
как там было?
null это known unknown
undefined это unknown unknown

Morsik
27.04.2018
18:40:27
а локально на что ругается?

from
27.04.2018
18:40:55
на то же самое — на обращение к sessionId внутри условия

Dmitry
27.04.2018
18:41:14

Morsik
27.04.2018
18:41:17
можешь скрин кода + ошибки от тса?

from
27.04.2018
18:41:24
короче 20 минут прошло, значит пора as any

Morsik
27.04.2018
18:41:57

from
27.04.2018
18:41:59

Morsik
27.04.2018
18:42:46
версия тс-а, тсконфиг?

from
27.04.2018
18:43:04
2.5.2

Morsik
27.04.2018
18:43:38
а, ну это может быть, там в 2.6-2.7 примерно были апдейты связанные с тайпгвардами
есть вариант сделать отдельную функцию, которая будет
f(x: AuthCredentials): x is SessionCredentials {
return 'sessionId' in x
}
и ее вызывать в ифе

from
27.04.2018
18:46:24
TS2339: Property 'sessionId' does not exist on type 'AuthCredentials'.
Property 'sessionId' does not exist on type 'UserCredentials'.
Version: typescript 2.5.2
ну давайте обновлюсь

Le
27.04.2018
18:49:30
но проблему они всё равно не решат

Google

Le
27.04.2018
18:50:30
нужна тайпгард-функция

from
27.04.2018
18:50:50
короче обновился и ещё хуже стало)

Le
27.04.2018
18:50:53
чтобы там было x is y

Admin
ERROR: S client not available


Le
27.04.2018
18:52:04
https://www.typescriptlang.org/play/index.html#src=type%20SessionCredentials%20%3D%20%7B%20sessionId%3A%20string%20%7D%3B%0D%0Atype%20UserCredentials%20%3D%20%7B%20username%3A%20string%3B%20password%3A%20string%20%7D%3B%0D%0Atype%20AuthCredentials%20%3D%0D%0A%20%20%7C%20SessionCredentials%0D%0A%20%20%7C%20UserCredentials%0D%0A%0D%0Afunction%20isSessionCredentials(value%3A%20any)%3A%20value%20is%20SessionCredentials%20%7B%0D%0A%20%20return%20value.sessionId%20!%3D%20null%0D%0A%7D%0D%0A%0D%0Afunction%20authorize(platform%2C%20authCredentials%3A%20AuthCredentials)%20%7B%0D%0A%20%20%20%20if%20(isSessionCredentials(authCredentials))%20%7B%0D%0A%20%20%20%20%20%20%20%20console.log(authCredentials.sessionId)%0D%0A%20%20%7D%0D%0A%7D%0D%0A
или вот так без any
https://www.typescriptlang.org/play/index.html#src=type%20SessionCredentials%20%3D%20%7B%20sessionId%3A%20string%20%7D%3B%0D%0Atype%20UserCredentials%20%3D%20%7B%20username%3A%20string%3B%20password%3A%20string%20%7D%3B%0D%0Atype%20AuthCredentials%20%3D%0D%0A%20%20%7C%20SessionCredentials%0D%0A%20%20%7C%20UserCredentials%0D%0A%0D%0Afunction%20isSessionCredentials(value%3A%20AuthCredentials)%3A%20value%20is%20SessionCredentials%20%7B%0D%0A%20%20return%20(value%20as%20SessionCredentials).sessionId%20!%3D%20null%0D%0A%7D%0D%0A%0D%0Afunction%20authorize(platform%2C%20authCredentials%3A%20AuthCredentials)%20%7B%0D%0A%20%20%20%20if%20(isSessionCredentials(authCredentials))%20%7B%0D%0A%20%20%20%20%20%20%20%20console.log(authCredentials.sessionId)%0D%0A%20%20%7D%0D%0A%7D%0D%0A
в доках буквально то же самое есть, только имена переменных другие


from
27.04.2018
19:06:00
Спасибо, гляну чуть позже!
в общем разргебу ошибки, которые после обновления тс появились и посмотрю, сработало ли с in


Ҫѐҏӗѫӑ
27.04.2018
20:33:00
можно с in

Евгений
28.04.2018
08:26:39
Не получается перегрузить метод это вообще возможно?

Artur
28.04.2018
08:27:14

Евгений
28.04.2018
08:29:09

Artur
28.04.2018
08:29:44

Евгений
28.04.2018
08:30:37
Нужно перегрузить метод, куда яснее?

Alice
28.04.2018
08:31:16

Google

Евгений
28.04.2018
08:32:00
Именно, с разными параметрами

Aleh
28.04.2018
08:32:51
Можно сделать несколько сигнатур у метода, но реализовать нужно будет потом в одном общем
class A{
f(): void
f(a: number): void
f(a?: number){}
}

Artur
28.04.2018
08:34:55
Но в некоторых языках можно

Дмитрий
28.04.2018
08:35:30
Хорошо что нельзя

Artur
28.04.2018
08:35:39

Дмитрий
28.04.2018
08:35:50
Остановились буквально у черты

Aleh
28.04.2018
08:35:57
В мире жс это бы привело к куче неоднозначностей

Евгений
28.04.2018
08:35:59

Дмитрий
28.04.2018
08:36:08

Artur
28.04.2018
08:36:27