
Иван
01.09.2017
14:51:33
спокойствие, только спокойствие© я просто задал вопрос, даже подразумевая, что это невозможно... ничего нового вы не ответили, чего нервничать-то.

Bohdan
01.09.2017
15:10:20
в ts с помощью reflect есть возможность получить информацию о методе? К примеру, возвращаемый тип, аргументы и их типы, private, protected или public, static или не static

Mike
01.09.2017
15:11:42
но! например инфы о том кто от кого наследуется и какие интерфейсы имплементирует не будет. Также нельзя включить это дело по умолчанию

Google

Mike
01.09.2017
15:13:39
т.е. декорироваться метаинфой у тебя будут только те классы и методы на которых висят какие-либо декораторы. Ангулярщики давно просят уметь включать всю рефлексию сразу, но команда ts так не деалет

Ҫѐҏӗѫӑ
01.09.2017
15:13:49
там твоя помощь нужна как знатока рандомов
в биржс

Mike
01.09.2017
15:14:08

Ҫѐҏӗѫӑ
01.09.2017
15:14:10
да

Mike
01.09.2017
15:14:14
ща

Bohdan
01.09.2017
15:15:56

Mike
01.09.2017
15:22:38

Bohdan
01.09.2017
15:23:33

Mike
01.09.2017
15:24:57
https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API
раздел Traversing the AST with a little linter
смотреть на устройство ast https://astexplorer.net/ там тайпскрипт есть в менюшке
ты можешь сделать себе пребилд стадию где прогонишь собственные исходники и найдёшь свои публичные методы и сделаешь точ то тебе наужно

Google

Aleh
01.09.2017
15:26:20
ну кроме ast надо еще тип получать\резолвить

Mike
01.09.2017
15:26:37
может проще правило для tslint написать, но в этом я не силён

Aleh
01.09.2017
15:27:06

Bohdan
01.09.2017
15:28:29

Aleh
01.09.2017
15:28:53
это значит заюзать его api для пре-процессинга

Mike
01.09.2017
15:29:15

Aleh
01.09.2017
15:29:21
нормального способа вклиниться в процесс компиляции у тайпскрипта, чтобы поиграться с типами вроде как нет

Mike
01.09.2017
15:29:43
да, поэтому я трансформлю код и потом билжу нормальным компилером

Aleh
01.09.2017
15:29:51
поиграться с типами = расширить checker, т.е. их резолв и все вот это

Mike
01.09.2017
15:30:03

Aleh
01.09.2017
15:30:15
есть трансформеры, чтобы менять вывод и есть плагины к tsserver, но они не участвуют в компиляции

Bohdan
01.09.2017
15:40:55
что то читаю, и туплю
мне нужно в декораторе, что декорирует класс, перебрать методы прототипа и декорировать единственный публичный метод, или бросить ошибку если их несколько
как это можно сделать?
признателен за помощь, а то что то не сообращаю(

Aleh
01.09.2017
16:01:06
просто в декораторе в рантайме этого сделать нельзя, потому что у тебя там нет нужной инфы, варианта два:
1. добавлять нужную тебе информацию в дополнительном этапе компиляции и обрабатывать ее в рантайме
2. делать все нужные тебе манипуляции в дополнительном этапе

Bohdan
01.09.2017
16:23:08

Andrey
01.09.2017
16:23:46

Bohdan
01.09.2017
16:25:40

Сергей
01.09.2017
16:25:57
рантайм не нужен

Andrey
01.09.2017
16:25:59

Google

Andrey
01.09.2017
16:26:02
Мило.
Хорошо, что у меня 24 гига ОЗУ.
+ проц топовый
Поделия людей с такой логикой не так сильно тормозить будут.

Mike
01.09.2017
16:28:10
Хорошо, что у меня 24 гига ОЗУ.
я уже на таком часть задач делаю, так что скоро придётся тебе новый комп брать http://service.crazypanda.ru/v/clip2net/5/w/nnwHNhvakM.png

Сергей
01.09.2017
16:28:24
че за проц

Mike
01.09.2017
16:28:41
хз 2x каких-то ксеона по 24 ядра

Сергей
01.09.2017
16:28:42
ахах
504ГБ ОЗУ

Andrey
01.09.2017
16:28:50

Сергей
01.09.2017
16:28:51
норм
для винды хватит

Bohdan
01.09.2017
16:28:56

Andrey
01.09.2017
16:29:19
Потому что сравнивать js/ts и джаву нельзя.

Mike
01.09.2017
16:29:52
504ГБ ОЗУ
кстати хз почему 504 показывает, там 512 должно быть

Bohdan
01.09.2017
16:30:11

Andrey
01.09.2017
16:30:20
А так же рефлексию в рантайм.

Mike
01.09.2017
16:30:55
вообще во флеше очень развитый рантайм и там есть вся эта инфа, и не сильно то это и тормозит

Google

Andrey
01.09.2017
16:30:57
Не нужно сравнивать клиентские машины и сервера.

Bohdan
01.09.2017
16:31:14
Да.
Что плохого в рефлексии? Очень интересно

Mike
01.09.2017
16:31:18
это в отдельном сторадже можно держать и вообще никакого вляиния на рантайм это оказывать не будет

Andrey
01.09.2017
16:31:23

Bohdan
01.09.2017
16:31:27
Тем более, что в джс оно практически бесплатно

Mike
01.09.2017
16:31:47

Andrey
01.09.2017
16:31:59

Bohdan
01.09.2017
16:32:27

Mike
01.09.2017
16:32:47

Andrey
01.09.2017
16:32:57

Mike
01.09.2017
16:33:02

Andrey
01.09.2017
16:33:24

Bohdan
01.09.2017
16:33:30

Mike
01.09.2017
16:33:41

Maxim
01.09.2017
16:33:44

Bohdan
01.09.2017
16:33:54

Andrey
01.09.2017
16:33:54

Mike
01.09.2017
16:34:00
а в рантайме у тебя просто js и никакой информации о типах совсем

Andrey
01.09.2017
16:34:03

Mike
01.09.2017
16:34:41

Google

Bohdan
01.09.2017
16:34:49

Mike
01.09.2017
16:35:27

Andrey
01.09.2017
16:36:26

Bohdan
01.09.2017
16:38:00

Andrey
01.09.2017
16:39:18

Aleh
01.09.2017
16:40:08
а может не сказаться

Andrey
01.09.2017
16:40:17
Логично)
Опасная штука просто.

Bohdan
01.09.2017
16:40:38
То ненужная, то тормознутая, то опасная. Такое чувство, будто лишь бы против высказаться

Andrey
01.09.2017
16:45:18
К тому же код выполняется на клиентской машине.

Bohdan
01.09.2017
16:46:58

Andrey
01.09.2017
16:47:32
Ок.
Пойду покупать новую машину

Bohdan
01.09.2017
16:47:39

Andrey
01.09.2017
16:47:58
Спасибо)

Mike
01.09.2017
22:38:30
А что несёшь?
Мне нужно рантайм представление интерфейсов и проверка того имплементит ли объект интерфейс в смысле номинальной типизации