
Alex
18.01.2017
06:24:10
ну по всей видимости в any :) типа зачем типизация если юзаем any везде

Illya
18.01.2017
06:24:19
не, не, обнови гист, я ее просто не убрал :)
вот, еще раз обновил

Alex
18.01.2017
06:26:01
ну тогда и тут const dottedPrefix = prefix ? ${prefix}. : ''; проверку убери)

Google

Illya
18.01.2017
06:26:10
не, тут все ок
это ж не типы
просто тернарка

Alex
18.01.2017
06:26:32
ну он же так и так уже nullable не будет, по умолчанию строкой пустой

Illya
18.01.2017
06:26:47
правильно - я проверяю на пустую строку

Alex
18.01.2017
06:27:04
а, там точку не заметил

Illya
18.01.2017
06:27:05
если пустая строка - оставить пустой строкой,
если непустая - дописать спереди точку
Давайте спросим typescript - все ли ок с этим кодом
http://bit.ly/2jIZ6Ha
typescript не имеет никаких возражений
для тех кто не в курсе - я просто указал что на входе функции объект, ключи которого - строки, а значениями может быть все что угодно (в typescript это записывается как {} )

Alex
18.01.2017
06:29:19
ну если в опциях песочницы поставить все чекбоксы то одна ошибка появляется

Illya
18.01.2017
06:29:50
там где noImplicitAny это ошибка что он не может тип вывести

Google

Alex
18.01.2017
06:30:05
а, ок)

Illya
18.01.2017
06:30:15
теперь возьмем flow
скопируем тот же код, только вместо {} используем слово mixed (это аналог {} во flow)
http://bit.ly/2jXMhYY
а вот flow абсолютно корректно ударил меня по рукам: он говорит - уважаемый, а ты забыл что null это тоже object и ты попытаешься выполнить его flatten

Rafael
18.01.2017
06:31:38
ребзь, что посоветуете для обычного логера? чтобы console.log не писать

Alex
18.01.2017
06:32:54
а, всмысле что свойство может быть, а вот значение у него Null и мы тогда будем пытаться его плоским делать

Illya
18.01.2017
06:33:00
ага
и вот в этом проявляется бесполезность typescript. Да, конечно приятно иметь автокомплит по полям каким нибудь описанных в типах, но блин - это же простейшая ошибка
Пример не лучший, просто вчера под руку попался на реальном проекте

Alex
18.01.2017
06:34:21
в общем если выбирать чем типизировать то лучше Flow?
а чем под вебпак flow потом собирать

Illya
18.01.2017
06:35:23
у Flow в разы более мощная система ВЫВОДА типов. Т.е. когда flow понимает без единого типа в коде что за фигня там может быть
у Typescript сейчас конечно понаписали библиотек типов для популярных библиотек, в этом его сильная сторона
кстати сам Vue использует flow
https://www.youtube.com/watch?v=GEo3XIJw8HM
минута самопиара - я там 50 минут разношу typescript в пух и прах )

Alex
18.01.2017
06:36:19
?
звук дребезжит немного

Illya
18.01.2017
06:37:22
там пару минут

Google

Illya
18.01.2017
06:37:24
дальше лучше
орги балбесы запись экрана не вставили, хотя я им прислал ее :)

Andrey
18.01.2017
06:37:47
@xanf_ua А покажи свой типичный компнент на flow с this.$router и this.$store ☺️

Illya
18.01.2017
06:38:52
ни то ни то не использую :)

Rafael
18.01.2017
06:39:42
https://gist.github.com/Fl0pZz/1944cd7b7a409fcb81962510230da355
пока тут есть активность, можете глянуть?
как в методы передать функцию, реализованную вне компоненты, но чтоьы ее можно было вызывать через this?

Andrey
18.01.2017
06:42:39
А какой у нее вообще this? window?
methods: {
creator: creator.bind(this)
}

Illya
18.01.2017
06:44:56
@gmtyllo https://gist.github.com/xanf/8eea0715ea516c819aed18553d4f1875
@gmtyllo так оно прибиндит точно не тот this

Alex
18.01.2017
06:52:15
Даже в 1080 не понять что там после ReduxAction написано ?

johan_krs
18.01.2017
06:52:30
мутный код какой-то

Rafael
18.01.2017
06:53:22

Illya
18.01.2017
06:53:51

Alex
18.01.2017
06:54:09
нет, курсор уже в другом месте)

Illya
18.01.2017
06:54:19
мышиный

Alex
18.01.2017
06:54:21
наверное шрифт такой, не узнать непосвященным)
а
:D

Illya
18.01.2017
06:55:33
шрифт та самая PragmataPro, ее тут недавно вспоминали

Alex
18.01.2017
06:57:44
теперь какой-то код пишешь, а его не показывают толком)

Google

Alex
18.01.2017
06:57:52
о, наконец
с написанием switch прикольный глюк) раза три пишешь и удаляешь)

Illya
18.01.2017
06:59:23
flv-шка с кодом непожатая 999метров
лью на дропбокс )

Alex
18.01.2017
07:01:55
да ладно) думаю суть уловить ролика достаточно будет)

Illya
18.01.2017
07:10:36
@alex_sokolov https://www.dropbox.com/s/pq642l9hy7g1dot/kharkivjs.flv?dl=0
а черт

Admin
ERROR: S client not available

Illya
18.01.2017
07:11:05
дропбокс бесполезный :( первые 15 минут
чтоб полностью - надо скачать

Alex
18.01.2017
07:17:47
спасибо!

Illya
18.01.2017
07:19:10
надо будет сесть залить на youtube нормальную версию, но лениво
Кстати, по теме канала - поймал неприятный баг со <style scoped> в Vue

Владимир
18.01.2017
07:20:36

Illya
18.01.2017
07:22:10
@vladimirdotk https://youtu.be/WlB4fSy1RL0?t=747
там ссылка с таймстампом и там ответ :)

Rafael
18.01.2017
07:33:57
как сделать компоненту без template?

Illya
18.01.2017
07:35:07
просто его не объявлять?
а зачем такая штука?

Rafael
18.01.2017
07:36:00
делаю компоненту с уведомлениями, у нее просто нет шаблона, потому что вызвается toast из materialize

Google

Rafael
18.01.2017
07:36:26
вся логика перенесена в vuex, а в ней просто свистелки перделки сделаны

Stanislav
18.01.2017
07:38:21

Rafael
18.01.2017
07:39:30
а все, нашел ошибку :D
неверный путь прописал, когда компоненту импортил

Illya
18.01.2017
07:45:17
что за баг?
Есть компонент А, который допустим объявляет в style scoped классы .foo и .bar
Этот компонент A рендерит компонент B следующим образом <b class="foo">
В компоненте B тоже в style scoped объявлены классы допустим .foo и .baz и используется где-то в глубине. Темплейт B такой <div class="baz">.... тут пофигу</div>
Что происходит. vue навешивает data аттрибут на компонент A. Допустим это data-1.
Поскольку на компоненте B есть scoped стиль foo на нем тоже будет аттрибут data-1
Теперь vue смотит на компонент B. У него тоже есть scoped стили, поэтому на B будет навешаны дата аттрибуты data-2
В итоге B будет по факту отрендерен как <div class="foo baz" data-1 data-2> (один класс пришел от А, второй от B и два дата аттрибута от scoped стилей)
И тут мы увидим как на B сработает scoped-стиль foo из B - хотя ж он не должен. Мы его не навешивали.

Alex
18.01.2017
08:00:20
issue им запилишь?)

Illya
18.01.2017
08:02:25
они тут ни при чем

Rafael
18.01.2017
08:28:40
хмм, по всей видимости из-за vuex-persistedstate
@xanf_ua помоему ты там выше писал, что что-то подобное было, да?

Illya
18.01.2017
08:30:23
Если ты используешь persistedstate то данные должны быть сериализуемые
С set не прокатит

Kelin
18.01.2017
08:36:06
Вот, реальный пример. Задача следующая. Есть апишка, которая генерирует ответы с глубокой вложенностью:
{ a: { b: [1, 2, 3], c: {u: 4} }, d: 5}
Необходимо превращать это в плоский объект:
{
'a.b': [1, 2, 3],
'a.c.u': 4,
'd': 5
}
О, а я наоборот делал
Ты обращаешься к state.notices. Ты хранишь в сторе функцию? Откуда set?

Rafael
18.01.2017
08:38:40
хмм, а стоит ли ее хранить в этом сторе?

Kelin
18.01.2017
08:39:49
Вот и я не понимаю

Rafael
18.01.2017
08:40:22
понятно, что по хорошему надо, но сериализовать каждый раз весь map - говнокодерство

Vadim
18.01.2017
08:46:53
Очевидно, что хром