@typescript_ru

Страница 123 из 669
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 правила всего, хотя там за последний месяц была движуха

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
@ZeroBias как заставить vscode понимать object spread в js? :3
Он там пока неправильно понимает spread, думает что это поле в объекте, потому что в js этой фичи нет

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
потому что основано на typescript service
так а если обновить typescript?

Dreamerinnoise
29.11.2016
18:16:20
так а если обновить typescript?
Прописать другой сдк? Не пробовал.

Дмитрий
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
ну так просто по доке пройтись, всяко быстрее и полезнее стартера

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