@typescript_ru

Страница 568 из 669
Игорь
03.04.2018
13:00:09
исправлять ошибки типизации на этапе компиляции уже на 10-15% защищает от ошибок в будущем

рантайм то уже другое, в этом случае все зависит от адаптеров в местах где прилетают рандомные данные

либо они парсятся и соответствуют интерфейсу и идут дальше, либо эксцепшн и продолжается весьма определенное поведение

Google
Max
03.04.2018
13:54:15
@ZeroBias

а как вы с бека дергаете типы?

Дмитрий
03.04.2018
13:54:25
Чоу

Max
03.04.2018
13:54:40
т.е. коннектитесь к апи?

Aleh
03.04.2018
13:54:58
Генерируем
А из чего во что?

Дмитрий
03.04.2018
13:55:19
Бэк раздаёт просто json файл со схемой, мы подключаемся когда нужно и переходим на следующую версию спецификации

Max
03.04.2018
13:55:30
а, у вас апи версионное?

збс вам :)

Дмитрий
03.04.2018
13:55:35
тут сложно в двух словах рассказать, так как от rest это бесконечно далеко)

Max
03.04.2018
13:55:41
ок

Дмитрий
03.04.2018
13:55:53
Более того, бэк поддерживает сразу много схем, мы можем переезжать плавно

Google
Aleh
03.04.2018
13:56:08
json один раз руками перегоняете в типы или при билде вытягиваете?

Дмитрий
03.04.2018
13:56:26
При билде конвертирую в flow types

15 к строк типов на выходе аж вместе с докой

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

В общем мне надоело за этим следить, теперь это генерирует бабель плагин, сверяясь со всё той же схемой



Только у Method в перегрузке не три значения а более сотни

Следом идёт union type схемы и обычный

Aleh
03.04.2018
14:08:57
?

Дмитрий
03.04.2018
14:09:40
Короче, так как mtproto при всём желании я посоветовать не могу, то могу лишь предложить переехать на graphQL) С версионированием, нормальными first class методами и типами реально прям значительно проще жить

Если бы тс не сделал подлянку с поддержкой jsDoc в vs code было бы вообще супер

Aleksey
03.04.2018
14:15:10
я определил мап как let m = { [key: string]: string }; m['a'] = '1'; как получить доступ к ключу и значению?

?

если они не известны во время выполнения

http://www.typescriptlang.org/play/ почему этот плейграунд настолько неудобно сделан?

Игорь
03.04.2018
14:28:59
кто-нибудь прикручивал нормально winston-daily-rotate-file в тайпскрипте?

Mark
03.04.2018
14:45:41
Народ - всем привет ! Помогите исправить проблемму ! private data: Object - пропускает массивы. Надо сделать так чтоб не пропускал ничего кроме обьектов Как сделать ?

Ilshat
03.04.2018
14:46:47
Перечислить низя?

Mark
03.04.2018
14:47:02
Google
Ilshat
03.04.2018
14:47:11
Да почти все тут)

Mark
03.04.2018
14:47:16
ахха

норм так )

Ilshat
03.04.2018
14:47:22
Usb tut

Mark
03.04.2018
14:47:43
Вобщем мне надо просто в переменную принимать обьект, а если что-то другое - то ошибку

ну а писать кучу отрицаний - как-то плохо как по мне

Ilshat
03.04.2018
14:48:56
Ты можешь сравнить с Object там где используешь и в рантайм получить ошибку или тебе именно при кодинге надо?

anatolii
03.04.2018
14:49:00
Укажи интерфейс

Ilshat
03.04.2018
14:49:16
О вариант тоже)

Mark
03.04.2018
14:49:47
Оо как-то странно...

anatolii
03.04.2018
14:49:59
{} - если такое пройдет то норм, если нет, можешь указать хотябы одно поле которое будет всегда, тогда массив не должен пройти

Mark
03.04.2018
14:50:39
у меня одно поле - и надо как-то принимать только обьекты, и писать для этого интерфейс... такое себе решение... да и походу интерфейс тоже пропустит

Ilshat
03.04.2018
14:51:06
Кей валуе тип укажи

anatolii
03.04.2018
14:51:22
{ [key: string]: string; }

Mark
03.04.2018
14:51:52
сек сча попробую

все равно массив пропускает...

anatolii
03.04.2018
14:52:36
странно

у массива ключ числовой

Google
Mark
03.04.2018
14:52:44
угу

anatolii
03.04.2018
14:52:45
а у тебя указана строка

Mark
03.04.2018
14:53:00
а строку не пропускает

Дмитрий
03.04.2018
14:53:11
Array,isArray кто запрещает использовать?

На тайп левеле то что ты хочешь — бессмыслица)

Mark
03.04.2018
14:53:46
anatolii
03.04.2018
14:53:55
у меня на массив ругается

Mark
03.04.2018
14:54:05
На тайп левеле то что ты хочешь — бессмыслица)
мне надо просто для других ребять дать типы которые они могут прописывать а какие нет

Дмитрий
03.04.2018
14:54:29
Ну ты понимаешь что Object включает в себя массив?

anatolii
03.04.2018
14:54:32
https://i.codeit.pro/kobzar/i/2018-04-03-c7a5a.png

Mark
03.04.2018
14:54:41
https://i.codeit.pro/kobzar/i/2018-04-03-c7a5a.png
ты такое с классом попробуй

я же не в функцию принимаю

anatolii
03.04.2018
14:55:22
всеравно агрумент будет

в классе метод, это та же функция

приведи пример

Mark
03.04.2018
14:55:48
anatolii
03.04.2018
14:55:53
пример приведи

Google
Mark
03.04.2018
14:57:35
Та хз _)

пример приведи
Родители наследования разные

anatolii
03.04.2018
14:59:04
просто кусок кода скинь чтоб понятно было о чем говоришь

Mark
03.04.2018
15:01:02
Dmitry
03.04.2018
15:01:45
Не помогает
Реально, кидай код, все устали гадать

anatolii
03.04.2018
15:01:55


Работает же

Mark
03.04.2018
15:02:48




anatolii
03.04.2018
15:05:20
У тебя что за иде?

Dmitry
03.04.2018
15:05:39
У тебя что за иде?
Вебшторм жи

anatolii
03.04.2018
15:06:01


Работает жи

может у тебя в настройках анализатор выключен?

Mark
03.04.2018
15:07:29
может у тебя в настройках анализатор выключен?
та не может быть... ну строку он не пропускает и пишет ошибку

anatolii
03.04.2018
15:08:08
ну я тебе показал такой же код

Ошибку именно тс выдает



Mark
03.04.2018
15:08:45
сейчас попробую с интерфейсом

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