@vuejs_ru

Страница 223 из 3900
Yaroslav
26.02.2017
22:53:20
т.е мне нужно не у другого модуля вызвать, а у оснвного стейта

Kelin
26.02.2017
22:53:56
Хм, ну по идее должно работать

К сожалению, не с компа, так что больше ничем не помогу

Yaroslav
26.02.2017
22:59:01
А у тебя в какой версии vuex работало?

Google
Airat
27.02.2017
00:10:59
https://date-fns.org/ юзает кто?

Illya
27.02.2017
00:31:22
@codev0 я

хорошая штука, нравится мне больше чем moment

Airat
27.02.2017
00:32:12
ок, спасибо, хочу заюзать, хотел мнение узнать

дока приятная

Illya
27.02.2017
04:11:33
Добро пожаловать в ад строгой типизации на Node.JS. Присаживайтесь рядом с джавистами



Ivan
27.02.2017
04:17:36
?

★nton
27.02.2017
04:18:11
>>строгая типизация

>>ад

Airat
27.02.2017
04:18:29
что за шрифт?

Illya
27.02.2017
04:18:38
PragmataPro

Airat
27.02.2017
04:21:24
спасибо, поюзаю.

Google
Illya
27.02.2017
04:22:42
он платный :-P Пиратить плохо ;)

Airat
27.02.2017
04:23:48
€199 ппц

а я на гитхабе увидел, и подумал что халява

стоит своих денег?

Illya
27.02.2017
04:25:11
ну я им 5 лет пользуюсь и пока не нашел альтернативы

Alex
27.02.2017
04:25:15
Два раза typeof?

Illya
27.02.2017
04:25:18
да

Alex
27.02.2017
04:25:38
Чтобы наверняка ?

Illya
27.02.2017
04:25:43
угу

type ExtractType<T, RT: Type<T>> = T; export type TypeOf<RT> = ExtractType<*, RT>;

больше ада богу ада. Javascript слишком прост для понимания :)

Alex
27.02.2017
04:39:04
Кстати, есть бот, который считает в чате благодарности и топ помощников выводит
Вот давайте без этого, сейчас тут самая нормальная атмосфера, без странных правил и дурацких ботов

Illya
27.02.2017
04:39:38
+1. Пока атмосфера норм

В конце концов количество благодарностей: а) ни на что не влияет б) провоцирует отвечать на простые вопросы Как ни странно пункт б) это плохо - за простыми вопросами надо слать в гугл и доку

Чат должен быть прежде всего для вопросов которые плохо или криво отображены в доке, для "НИПАНЯТНА!" и для "давайте обсудим как бы вы это делали"

Alex
27.02.2017
04:44:19
Тут и просто по вопросам js ответ быстрее подскажут как мне кажется ?

Illya
27.02.2017
04:44:43
там же написано "прежде всего", а не "только для" :)

а так jquery one love / cc @kelin2025

А вообще задача добиться идеальной типизации проекта оказалась сложной и прикольной

я вначале думал это даже постримить, но уровень стрима получается хардкор++

Google
Illya
27.02.2017
04:59:06
потому что начинается все с переопределения типа возвращаемого значения у JSON.parse :)

Alex
27.02.2017
05:00:48
А было бы интересно посмотреть, написание типизирующего парсера

?

Illya
27.02.2017
05:01:14
не нужно. Я просто переопределяю возвращаемый тип у JSON.parse

по умолчанию там any - соответственно any является "вирусным", и все что дальше использует объект полученный через JSON.parse не может быть типизировано

я подменяю его на mixed - в итоге чтобы использовать любой объект, полученный через JSON.parse надо вначале строго доказать его тип

Illya
27.02.2017
05:12:57
да

ничего страшного в этом нет, это скорее защита от косяков типичных

Ilia
27.02.2017
05:17:00
ничего страшного в этом нет, это скорее защита от косяков типичных
ну в golang там все просто: косячишь - ничего не компилируется. Но типы есть изначально. А здесь получается... надо присваивать типы уже постфактум, когда переменная уже существует? не понимаю пока как это тут работает... Я правильно помню что это приложение потом посмотреть можно будет на гитхабе?

Illya
27.02.2017
05:17:24
да, можно будет

ну вот смотри

Illya
27.02.2017
05:17:56
const googleConfig: GoogleConfigType = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../config/sdk.json')).toString('utf8'));

выглядит неплохо, правда? :)

но это же чушь - в этой строке нет гарантий, что JSON.parse вернет объект, который будет совместим с GoogleConfigType

соответственно перед присваиванием надо доказать, что результат JSON.parse совместим с GoogleConfigType

Ilia
27.02.2017
05:27:36
я конечно буду выглядеть идиотом, но все же спрошу. GoogleConfigType = выглядит как тайп ассершн Логично тут сделать typeOf (или как это в JS делается) и если тип идентичен, то уже делаем то что нужно

Illya
27.02.2017
05:28:44
как раз в том то и дело, что поскольку в JS нету типов это нифига не type assertion

это type definition - т.е. ты говоришь что переменная googleConfig имеет тип GoogleConfigType

по умолчанию JSON.parse возвращает тип any который можно скастить к любому типу

Google
Ilia
27.02.2017
05:30:02
и как сделать чтоб кастовалось только если нужный тип?

Illya
27.02.2017
05:30:06
в итоге статический анализатор думает что в googleConfig находится валидный конфиг. Если в рантайме конфиг будет кривого формата - то выполнение программы пойдет совсем не так, как задумывалось

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

сейчас у меня так написано: const googleConfig = validate( JSON.parse(fs.readFileSync(path.resolve(__dirname, '../config/sdk.json')).toString('utf8')), GoogleConfigModel, );

в итоге благодаря чёрной магии это не только валидирует эту штуку в рантайме, но и автоматически выводит тип для статического анализатора

Admin
ERROR: S client not available

Illya
27.02.2017
05:31:19
т.е. я определяю тип один раз - для рантайма, ради чего всё и задумывалось

при этом у меня есть автокомплит на googleConfig, строгая валидация что я не обращаюсь к левым полям на этапе разработки и т.д.

Ilia
27.02.2017
05:32:16
GoogleConfigModel мы где описываем? Это c помощью flow делается?

Illya
27.02.2017
05:32:42
описываем мы руками, делается это с помощью отдельной библиотеки, у которой правильно написаны флоу биндинги

в итоге она на выходе возвращает нам модель строгого типа (с точки зрения flow) и выполняет все необходимые проверки в рантайме, чтобы flow был уверен, что мы все проверили

Ilia
27.02.2017
05:33:26
Спасибо

Остальное в коде посмотрю когда можно будет...

Illya
27.02.2017
05:33:54
угу

Ilia
27.02.2017
05:34:05
Ну впринципе не так уж и сложно

Illya
27.02.2017
05:34:17
да

но понять это, а еще объяснить людям :)

зачем ты сам себе усложняешь жизнь и почему надо валидировать все I/O-boundary

Ilia
27.02.2017
05:41:22
С ужасом представляю как буду фронту со стажем год объяснять что теперь он должен делать так.

Illya
27.02.2017
05:42:48
я тоже

Google
Alex
27.02.2017
05:44:39
Ну интересный же челлендж, вы чего ?

Airat
27.02.2017
05:45:52
подскажите, при первой загрузке виден компонент, после того как vue загрузился, точнее виден фон, и паддинг. своего рода FOUC, какие практики есть чтобы такого не было?

Alex
27.02.2017
05:46:19
v-cloak?

Illya
27.02.2017
05:46:26
v-cloak!

Alex
27.02.2017
05:46:48
ни разу ещё им не пользовался)

наверное что-то делаю не так

Airat
27.02.2017
05:47:19
спасибо, почитаю

Airat
27.02.2017
06:07:04
видать не я один такой, https://gist.github.com/adamwathan/3584d1904e4f4c36096f

Andrey
27.02.2017
07:01:05
какая то попытка сделать из ежа ужа

Kelin
27.02.2017
07:12:36


А разве, в этой ситуации не будет ошибки? Если post null

Или это особенность cloak?

Andrey
27.02.2017
07:13:45
ну это как v-if, у тебе компонент не будет рендериться, а значит и ошибки не будет

Kelin
27.02.2017
07:13:51
Просто ни разу не юзал его и вместо всегда писал v-if="!!post"

Имхо так лучше

Andrey
27.02.2017
07:15:15
Нет, v-cload это как v-show

Andrey
27.02.2017
07:16:11

Страница 223 из 3900