
Vasiliy
28.11.2016
18:42:48
https://github.com/facebook/flow/blob/v0.36/lib/core.js#L765
хах, кажись я догадываюсь в чем тут дело)
он думает что прокси это объект типа таргет, но как это поправить без
const result = new Proxy(target, resolver);
return ((result: any): Proxy<Scope>);
я хз

Ҫѐҏӗѫӑ
28.11.2016
18:51:20
new Proxy не возвращает Proxy. все верно

Vasiliy
28.11.2016
18:51:44
лан) и так сойдет

Google

Vasiliy
28.11.2016
18:51:46
хочется прокси использовать и все, никогда в жизни их не использовал, хоть сегодня оторвусь

Ҫѐҏӗѫӑ
28.11.2016
18:53:17
просто Scope там везде поставь
вместо Proxy<Scope>

Vasiliy
28.11.2016
18:53:46
о да, так работает, спасибо
а много из этого уже устарело? http://sitr.us/2015/05/31/advanced-features-in-flow.html
кто-нибудь читал этот пост?

Ҫѐҏӗѫӑ
28.11.2016
21:58:29
¯\_(ツ)_/¯

Dreamerinnoise
29.11.2016
10:59:25
const {
palette = createPalette(),
breakpoints = createBreakpoints(),
mixins = createMixins(breakpoints),
typography = createTypography(palette),
...more
} = config as any;
TS2448:Block-scoped variable 'breakpoints' used before its declaration.
Странно, флоу такое пропустил. Это вообще валидно так делать?

Anatoly
29.11.2016
12:18:54
Ребят, подскажите как пробросить кастомный параметр process.env в клиентский бандл?

Aleh
29.11.2016
12:19:38
при билде?

Anatoly
29.11.2016
12:19:49
Ага, через точку входа не вариант, ибо
private static controlPluginService = new ControlPluginService( --> вот сюда нужен параметр сборки <--);
Ну или может какие другие варианты есть, и без process.env, а через плагины webpack

Aleh
29.11.2016
12:21:49
ну так в webpack DefinePlugin

Anatoly
29.11.2016
12:22:09
а как его на клиенте то получать?

Google

Aleh
29.11.2016
12:22:24
так в бандл запишется константа
ее и юзайте

Anatoly
29.11.2016
12:22:42
глобальная константа? хм, спасибо, сейчас посмотю

Aleh
29.11.2016
15:45:42
https://github.com/nzakas/eslint-plugin-typescript
заглохло

Dreamerinnoise
29.11.2016
16:55:11
@ZeroBias как заставить vscode понимать object spread в js? :3

Vasiliy
29.11.2016
17:08:48
заглохло
ну да, я только сегодня его сам откопал
4 правила всего, хотя там за последний месяц была движуха

Aleh
29.11.2016
17:09:00

Vasiliy
29.11.2016
17:09:56
вон сколько для флоу сделал тип https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules
о, я знаю что это за тип)

Aleh
29.11.2016
17:10:11
ну прост есть tslint

Vasiliy
29.11.2016
17:10:55
блин, я идиот(
https://github.com/buzinas/tslint-eslint-rules
^ я уже пользовался этим ведь и забыл
вообще, не очень понятно, честно говоря, в чем идея eslint-plugin-typescript, они просто переносят правила из tslint'a: https://github.com/nzakas/eslint-plugin-typescript/issues/5#issue-176478134

Дмитрий
29.11.2016
17:17:43

Dreamerinnoise
29.11.2016
17:17:57
угу, ответ никак
потому что основано на typescript service

Дмитрий
29.11.2016
17:18:25
А, ну да, тем более)
Ну главное что ошибку не показывает и ок

Dreamerinnoise
29.11.2016
17:19:05
Показывает же

Дмитрий
29.11.2016
17:19:12
А, ты про это

Google

Дмитрий
29.11.2016
17:19:40
Выключи стандартный js валидатор, оставь только eslint
"javascript.validate.enable": false
А в .eslintrc у меня так
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 8,
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
}
}
Остаётся только косяк, что const obj = { ...spread } понимается и типизируется как { spread }, но это не так существенно)

Aleh
29.11.2016
18:15:43

Dreamerinnoise
29.11.2016
18:16:20

Дмитрий
29.11.2016
18:17:24
Ошибку всё равно только встроенный линтер показывает

Dreamerinnoise
29.11.2016
18:20:46
Речь была о js файлах))
Или там флоу?

Aleh
29.11.2016
18:22:03
не, ts
ну в js также

Дмитрий
29.11.2016
18:24:04
Хм, норм

Dreamerinnoise
29.11.2016
18:24:15
Это какая версия?

Aleh
29.11.2016
18:24:24
next

Dreamerinnoise
29.11.2016
18:24:32
Тоже на ней сижу ))

Дмитрий
29.11.2016
18:24:33
А то я эту фичу отключил, он там поехал малясь, когда с 1.8 на 2.0 переезжал))

Aleh
29.11.2016
18:24:46
да, там перенесли файлы
надо было другую папку юзать)

Anatoly
29.11.2016
18:40:23
Ребят, а что скажете про создание инстанстов класса, непосредственно при объявлении атрибутов класса? Не антипаттерн ли это?
class A {
private static instanceB = new B();
private c;
constructor() {
this.c = new C();
}
}

Google

KlonD90
29.11.2016
18:41:32
?
а как оно работает?
в конструктор добавляет по итогу?

Anatoly
29.11.2016
18:43:04
Нет, в итоге просто получается свойство instanceB у объекта A (не экземпляра).

Aleh
29.11.2016
18:44:41
а зачем вам приватное статическое поле?

Anatoly
29.11.2016
18:45:33
Ну private использовали те люди, которые пишут на Java, считай, что просто static.

Aleh
29.11.2016
18:46:06
а просто static?

Admin
ERROR: S client not available

KlonD90
29.11.2016
18:46:34
приватное статическое ну почему бы и нет ._.

Aleh
29.11.2016
18:47:23
ну в смысле, если мы в модуле, то почему бы просто рядом не создать константу?

Anatoly
29.11.2016
18:47:26
private, public или просто static - без разницы, по сути они ничего не инкапсулируют, не в рантайме и не при стат. проверке.
Меня интересует другое, а именно создание экземпляра класса в этом статическом поле.

Vasiliy
29.11.2016
18:51:39
ну это будет тоже самое что и
function A() {
}
A.instanceB = new B();

Anatoly
29.11.2016
18:51:56
Ага

Aleh
29.11.2016
18:52:33
const otherInstance = new B
class A {}

Anatoly
29.11.2016
18:52:33
Так пишут так люди то и нормальная ли это практика? В объявлении атрибутов сразу создавать инстанс.

Aleh
29.11.2016
18:52:35
ну я про это
ну все зависит
я бы не юзал статики ни для чего, кроме именованных конструкторов
ну а вообще, если вам подходит, то юзайте)

Google

Vasiliy
29.11.2016
18:58:51
обычно когда такого хочется (сделать синглтон) оказывается, что на самом не нужно
но я не знаю про конкретную ситуацию, мб и правда нужно
да, грубо говоря, можно думать об этом как о статической инициализации в шарпе, к примеру

Anatoly
29.11.2016
19:01:17
Ну да, этот инстанс, который убирается в стат. атрибут другого класса - синглтон.

Vasiliy
29.11.2016
19:01:50
не захочется ли его потом нигде подменять на что-то другое?
должно ли быть знание о том, как его создавать (и его зависимостях) именно в этом модуле (классе)?

Anatoly
29.11.2016
19:02:23
И сам класс тоже будет иметь только один объект )

Aleh
29.11.2016
19:05:12
ну, в ts достаточно удобно использовать инъекцию через конструктор
ну и в flow

Vasiliy
29.11.2016
19:06:55
на фронте я такими штуками никогда не заморачивался, но когда писал на java, c# часто использовал IoC контейнеры: composition root, lifetime management (singleton, transient, perthread, perrequest, etc), вот это все
все магически приходило всем в конструкторы и конфигурировалось в одном месте

Aleh
29.11.2016
19:09:22
ну типа ничего не мешает это делать в js, только описывать руками

Vasiliy
29.11.2016
19:09:49
да, я просто пока сам не понимаю в каких случаях это мб оправдано, в плане сложности

Anatoly
29.11.2016
19:10:43
Ну в общем, вы мне помогли, надо просто все пересмотреть.

Ostap
29.11.2016
19:35:36
Вопрос, есть у кого годный стартер где ts2.1 и вебпак2?
На гх не могу найти норм

Vasiliy
29.11.2016
19:39:11
у меня оч минималистичный, но с флоу и я не выкладывал (:

Aleh
29.11.2016
20:05:30
я просто слабо понимаю, что может быть в годном стартере

Ostap
29.11.2016
20:05:55
не) никогда не настраивал typescript
только говно бабель

Aleh
29.11.2016
20:06:21
ну так просто по доке пройтись, всяко быстрее и полезнее стартера