@typescript_ru

Страница 338 из 669
Иван
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
в ts с помощью reflect есть возможность получить информацию о методе? К примеру, возвращаемый тип, аргументы и их типы, private, protected или public, static или не static
и да и нет. Можно заюзать https://github.com/rbuckton/reflect-metadata и включить декораторы в ts и тогда инфа о методах как раз будет

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

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

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

в биржс

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

Mike
01.09.2017
15:14:14
ща

Bohdan
01.09.2017
15:15:56
т.е. декорироваться метаинфой у тебя будут только те классы и методы на которых висят какие-либо декораторы. Ангулярщики давно просят уметь включать всю рефлексию сразу, но команда ts так не деалет
понял, благодарю! Мне как раз метаинфа у методов без декораторов и нужна) А конкретнее, просто перебирать все методы у декорируемого класса и искать один единственный не приватный)

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 написать, но в этом я не силён

ну кроме ast надо еще тип получать\резолвить
у тебя в тайпе есть TypeChecker со всей семантической инфой

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. делать все нужные тебе манипуляции в дополнительном этапе

Andrey
01.09.2017
16:23:46
Спасибо за ответ! Чего же так все сложно)
Ну, ты не такие уж и простые вещи хочешь сделать.

Bohdan
01.09.2017
16:25:40
Ну, ты не такие уж и простые вещи хочешь сделать.
Ну если бы разработчики тс внесли всю эту метаинфу с АСТ в рантайм, то все было бы очень просто :) Как в яве, к примеру

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

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ГБ ОЗУ

Сергей
01.09.2017
16:28:51
норм

для винды хватит

Bohdan
01.09.2017
16:28:56
Хорошо, что у меня 24 гига ОЗУ.
Что за странная реакция на слово ява?) Я лишь упомянул, а сразу такой бом бом

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

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

Mike
01.09.2017
16:31:47
Только энергии жрёт мама не горюй
жрёт там древняя и неоптимизированная виртмашина

Andrey
01.09.2017
16:31:59
Mike
01.09.2017
16:32:47
Кто мешал оптимизировать?
а я до сих пор не понимаю почему адоби дропнули флеш и не развивали его толком с 2007 года

Mike
01.09.2017
16:33:02
Так в тс сделано, вроде
нет, у тебя вообще нет информации о типах в рантайме

Andrey
01.09.2017
16:33:24
Что плохого в рефлексии? Очень интересно
Потому что она очень провоцирует писать всякую херню.

Mike
01.09.2017
16:33:41
В аст ж вроде есть
так это в компаил тайме

Bohdan
01.09.2017
16:33:54
Потому что она очень провоцирует писать всякую херню.
А пули убивают, давайте запретим пули

Andrey
01.09.2017
16:33:54
продвинутую херню
Продвинутую тормознутую херню.

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

Mike
01.09.2017
16:34:41
А пули убивают, давайте запретим пули
лучше металлы запретить, из них и ружьё и пули

Google
Bohdan
01.09.2017
16:34:49
так это в компаил тайме
Ну сперва то аст, и эту информацию, по идее, можно было бы в компайл тайм занести

Mike
01.09.2017
16:35:27
Ну сперва то аст, и эту информацию, по идее, можно было бы в компайл тайм занести
я для своего проекта сейчас как раз в рантайм и несу инфу из компаил тайма

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
А что несёшь?
Мне нужно рантайм представление интерфейсов и проверка того имплементит ли объект интерфейс в смысле номинальной типизации

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