@typescript_ru

Страница 335 из 669
Mike
31.08.2017
13:12:36
там 1100 закрытых функций в чекере, хз какие потребуются

я в итоге втупую форкнул тафпскрипт и запаблишил то что хотел себе

там мне нажо было то полтора метода

а системное глобальное рещение пока буксует

Google
Mike
31.08.2017
13:14:35
я рано или поздно дойту в своём проекте до бинда не всего подряд, а того что нужно, и тогда смогу продвинуть дальше этот крейзи рефактор

Я тут вчера изобрёл как интерфейсы в рантайме представить. Оказывается имя интерфейса и имя перенменной совсем не конфликтят друг с другом, и можно сделать что-то вот такое. http://service.crazypanda.ru/v/clip2net/v/Y/s2OYzFFE2E.png Сейчас генератор для этого делаю

andretshurotshka?❄️кде
31.08.2017
13:18:09
Есть же ts-runtime

Mike
31.08.2017
13:18:21
Сам факт того что нормально сосуществует рантайм и компайлтайм сущность с одним именем и от контекста зависит какая используется очень занятен

блин

ща заценю

Aleh
31.08.2017
13:18:50
ну я это активно юзаю с редаксом, константа и тип с одним именем

andretshurotshka?❄️кде
31.08.2017
13:18:54
:)

Это как flow-runtime

Mike
31.08.2017
13:19:35
Есть же ts-runtime
выглядит как то что мне нужно

хотя блин, это может значимый импакт на перфоманс влепить

но в любом случае спасибо, изучу

andretshurotshka?❄️кде
31.08.2017
13:25:18
ну так его только в дев режиме надо использовать мне кажется

Google
andretshurotshka?❄️кде
31.08.2017
13:26:23
я тож когда flow-runtime смотрел думал такое запилить, тогда еще не было ts-runtime и вроде апи для трансформаций не выкатили еще

Mike
31.08.2017
13:26:28
а мне для релизного кода нужно рантайм представление интерфейсов и проверка объекта на соотвествие интерфейсу( но не по факту наличия полей а по тому что он создан через класс который явно имплементировал интерфейс)

и я надумал нагенерить констант на все интерфейсы и отдельную таблицу с метаинфой кто кого имплементит

Mike
31.08.2017
13:28:00
чот жесть
так у меня задача жесть

andretshurotshka?❄️кде
31.08.2017
13:29:00
>по тому что он создан через класс который явно имплементировал интерфейс) как номинальные типы?

Mike
31.08.2017
13:29:06
да

потому что во флеше типизация номинальная

и у меня в конвертере тоже номинальная

andretshurotshka?❄️кде
31.08.2017
13:29:34
в флоу opaque тип смотрел?

Mike
31.08.2017
13:29:52
смотрел, смысла в них нет

мне нужно было нечто среднее ммежду тайпскриптовыми алиасами и опак типами, и это можно сделать в тс

Mike
31.08.2017
13:30:45
class Fake1 { } class Fake2 { } type int = Fake1 & number; type uint = Fake2 & number;

такая хрень с фейками позволяет сохранить алиас независимым типом а тайпчекере

то что было объявлено интом, остаётся интом, пока в него например намбер не запищут

andretshurotshka?❄️кде
31.08.2017
13:32:31
opaque type int: Fake1 = number;

Mike
31.08.2017
13:33:07
тогда в переменную объявленную интом нельза будет записать намбер литерал насколько я знаю

ну и flow мне вообще не к месту, от тайпскрипта очень много профита

Google
Aleh
31.08.2017
13:34:20
class Fake1 { } class Fake2 { } type int = Fake1 & number; type uint = Fake2 & number;
так не сработает, надо либо const enum, либо приватное поле какое закидывать

Mike
31.08.2017
13:34:33
однако работает

andretshurotshka?❄️кде
31.08.2017
13:34:42
opaque type int: Fake1 = number;
хотя я не вникал сильно как там)

Mike
31.08.2017
13:35:20
так не сработает, надо либо const enum, либо приватное поле какое закидывать
у меня очень странная задача, мне нужно чтобы эта штука не теряла типизацию после записи туда намбера

andretshurotshka?❄️кде
31.08.2017
13:45:32
class Fake1 { } class Fake2 { } type int = Fake1 & number; type uint = Fake2 & number;
так это и правда не работает, у тебя int'у можно будет присваивать uint и наоборот, не?

Dmitrii
31.08.2017
14:07:55
подскажите пожалуйста какой-нибудь материал по compiler api. интересуют примеры трансформации кода

andretshurotshka?❄️кде
31.08.2017
14:11:56
да вроде док нет

можно PR трансформеров посмотреть наверно

по Printer API дока есть

andretshurotshka?❄️кде
31.08.2017
14:13:29
https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API

andretshurotshka?❄️кде
31.08.2017
14:13:52
Вообще там мало док

?

Mike
31.08.2017
14:50:40
так это и правда не работает, у тебя int'у можно будет присваивать uint и наоборот, не?
можно будет, но моя задача чтобы потом при автовыведении типа остался интом. Потому что я нахожу все такие присваивания и там делаю кастинг

подскажите пожалуйста какой-нибудь материал по compiler api. интересуют примеры трансформации кода
материалов мало, читать компайлер апи и вот это https://basarat.gitbooks.io/typescript/content/docs/compiler/overview.html

могу подсказать некоторые вещи, завай вопросы

Maxim
31.08.2017
15:23:50
Что там насчёт beerJS в спб ? Идёт кто ?

Max
31.08.2017
15:35:59
Mike
31.08.2017
16:11:29
а вы знали что так можно в тайпскрипте? https://www.typescriptlang.org/play/#src=class%20Abra%20extends%20class%20Kadabra%20%7B%20%0D%0A%20%20%20%20public%20kadabraBoom()%20%7B%20%0D%0A%20%20%20%20%20%20%20%20console.log('boom%20from%20kadabra')%3B%0D%0A%20%20%20%20%7D%3B%0D%0A%7D%20%7B%20%0D%0A%20%20%20%20public%20abraBoom()%20%7B%20%0D%0A%20%20%20%20%20%20%20%20console.log('boom%20from%20abra')%3B%0D%0A%20%20%20%20%7D%3B%0D%0A%7D%0D%0A%0D%0Alet%20abr%20%3D%20new%20Abra()%3B%0D%0Aabr.kadabraBoom()%3B%0D%0Aabr.abraBoom()%3B

Google
Mike
31.08.2017
16:11:59
я призываю никогда так не писать, но так можно

andretshurotshka?❄️кде
31.08.2017
16:17:16
лол

сложно

Mike
31.08.2017
16:17:49
а я сижу, в ast смотрю и понимаю что там любая херня может быть, а не только идентификатор, проверил, реально так

Kadabra более того не светится наружу и в неймспейсе не появилась

более того, имя можно не писать, можно заэкстендить анонимный класс

Admin
ERROR: S client not available

Mike
31.08.2017
16:20:10
так - это как?
там Abra наследует Kadabra которая объявлена прям там инплейсом

andretshurotshka?❄️кде
31.08.2017
16:20:15
так вроде по спеке можно

Дмитрий
31.08.2017
16:20:30
не могу просто увидеть в приведенном примере кода ничего, чего нельзя было бы в нативном жс (не считая ключевого слова public, конечно)

Mike
31.08.2017
16:20:57
да дело не спеке и js, то что можно это ок, но вообще конструкция странная

тайпскрипт - няша

Eugene
31.08.2017
16:37:04
Подскажите, могу ли я сасовские цветовые переменные переопределять по событию?

Max
31.08.2017
16:39:06
Нет

Max
31.08.2017
16:39:39
Сасс у тебя в виде цсс грузится

И нет никаких переменным

Maxim
31.08.2017
16:39:53
можешь по событию менять css переменные или менять классы, в рантайме нет никакого сасс

Google
Max
31.08.2017
16:40:03
Непонятно почему это в чате про тс

Maxim
31.08.2017
16:40:28
местами

Andrey
31.08.2017
16:40:35
Давно.

Но не везде

Max
31.08.2017
16:40:46
Не знал

Andrey
31.08.2017
16:40:58
Деревня)

Maxim
31.08.2017
16:41:00
кроме поклонников IE - у всех есть

Eugene
31.08.2017
16:41:13
Спасибо всем

Vladimir
31.08.2017
20:44:18
https://twitter.com/vkurchatkin/status/903357045449138176

Max
31.08.2017
21:19:02
https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/

Mike
31.08.2017
21:32:03
аааа, они поставили в очередь https://github.com/Microsoft/TypeScript/issues/7849

2.6 будет

Andrey
31.08.2017
21:33:31
https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/
Блин, а рефакторинги давно стали частью языка?

Mike
31.08.2017
21:36:18
Блин, а рефакторинги давно стали частью языка?
у них всё это делается через languadge service потому что публичных апи на трансформере и тайпчекере нет нормальных

Ҫѐҏӗѫӑ
31.08.2017
21:38:21
меня больше всего смущет, что они нигде не пишут что будут делать с class fields и декораторами

потому что ни те, ни те уже не соответствуют спеке жс

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