
Andrey
07.10.2016
13:37:00
а зачем использовать babel?

Oleg
07.10.2016
13:40:29
кто-нибудь для реактовых проектов вместо webpack пользуется gulp?
gulp-typescript?

MVP
07.10.2016
13:47:45
у меня установлен TS 1.5

Google

MVP
07.10.2016
13:47:59
пытаюсь обновить до новой - ругается
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/Cellar/node4-lts/4.4.4/bin/node" "/usr/local/bin/npm" "install" "-g" "typescript"
npm ERR! node v4.4.4
да у меня nodejs 4.4
это очень плохо?

Mike
07.10.2016
14:49:47
а почему не TS -> babel -> es3?
Если это мне вопрос, то я пишу хайперфомансную штуку и мне очень нравится прозрачность тайп скрипта, то что я пишу фактически на js с компайл тайм плюшками. Честно бабел не пробовал, но пока не очень понятно зачем. Полифиллы мне не нужны. Почти нигде штуки из нового стандарта не позволяют улучшить производительность.

Vladimir
07.10.2016
14:51:11
> @aquahawk
прозрачность тайп скрипта
Что такое прозрачность?

Mike
07.10.2016
14:51:26
то что я очень хорошо понимаю во что это скомпилится
и часто смотрю в это
и что нет внезапных полифиллов

Vladimir
07.10.2016
14:52:01
Т е тот факт, что компилится не в соответствии со спекой?

Mike
07.10.2016
14:52:39
всмысле результат не соответствует спеке?
я не знаю таких мест, слышал много раз что что-то не соответствует спеке но на практике не сталкивался или не обращал внимания

Vladimir
07.10.2016
14:53:59
Там все подряд, начиная с классов, let/const и т д

Google

Mike
07.10.2016
14:54:38
то что в таргете es3 и es5 let превращается в var или что?

Vladimir
07.10.2016
14:54:47
Ну да

Mike
07.10.2016
14:54:59
дык а подругому в таком таргете не сделать

Vladimir
07.10.2016
14:55:19
Ну конретно с let/const - это не так важно
Вот классы неправильно в принципе

Mike
07.10.2016
14:55:37
я воспринимаю тайпу исключительно как возможность чуть удобнее писать на убогом js и любое удосбство это плюс

Vladimir
07.10.2016
14:55:53
Наследование неправильно

Mike
07.10.2016
14:55:53
про классы ничего ен могу сказать, не знаю что с ними не так

Vladimir
07.10.2016
14:56:00
Просто сравни с бабелем

Mike
07.10.2016
14:56:02
а что с наследованием
всмысле не по коду а по логике
т.е. какя конструкция тайпом скомпиленная будет работать неправильно

Vladimir
07.10.2016
14:56:49
Любой класс
С наследованием - сейчас покажу
https://www.typescriptlang.org/play/index.html#src=class%20A%20%7B%0D%0A%7D%0D%0A%0D%0Aclass%20B%20extends%20A%20%7B%7D%0D%0A%0D%0A(%3Cany%3EA).foo%20%3D%20'bar'%3B%0D%0A%0D%0Aconsole.log((%3Cany%3EB).foo)

Mike
07.10.2016
15:01:37
понял, я так не делаю
и вообще статика не наследуется в нормальных языках
я никогда такого и не хотел
но поинт понятен

Vladimir
07.10.2016
15:03:00
просто так во всем - игнорируют мелочи

Google

Mike
07.10.2016
15:04:08
мне гораздо больше не нравится то что ужансная проблема с тем когда у тебя много классов и файлов и они нихрена не модули по смыслу и это очень неудобно. Я пишу фреймвёрк и в его основе много сильно связанных классов и там очень всё криво
особенно с порядком статической инициализации

Vladimir
07.10.2016
15:04:53
А причем здесь TS?

Mike
07.10.2016
15:05:04
он мне в один файл собирает
когда есть циклическая завосомость файлов сложит как попало и даже не заворнит

Vladimir
07.10.2016
15:06:28
ну ES допускает такое

Mike
07.10.2016
15:07:35
ну пусть допускает, это криво и нелочично. Для меня удобство работы выше спеки. Ибо спеки гавно и этим ничего не сделать
то как по спеке сломали хоистинг функций в es6 и то что генераторы всегда приводят к аллокации в моей голове не уладывается
я в этом плане практик. Понадобились имена в методах, взял регуляркой зафигарил, и работает
я так и не понял как предлагается в es6 писать монолитный модуль на 20 классов например, не в одном же файле. И модулями тоже это странно делать

Vladimir
07.10.2016
15:16:17
а как еще то?
Либо в одном файле либо не в одном)

Oleg
07.10.2016
15:17:24
кто-нибудь для реактовых проектов вместо webpack пользуется gulp-typescript!?

Никита
07.10.2016
15:19:33
всем привет) есть какой нибудь норм туториал по нод+тс+реакт+вебпак? а то что-то в инете всё старое нахожу. или пример посвеже какой

Mike
07.10.2016
15:37:51
http://service.crazypanda.ru/v/clip2net/y/2/LTxOSHhdp4.png вот такое в итоге извращение чтобы получить имена функций у методов, как статических так и нет. Помогает стектрейс в ie8 построить

Vladimir
07.10.2016
15:53:47
А все потому, что ТС не по спеке делает
по спеке то name должен быть

Aleh
07.10.2016
16:00:36
ну это минорные проблемы, трансформеры пофиксить так-то не очень сложно им

Vladimir
07.10.2016
16:03:12
ну не фиксят же

Oleksandr
07.10.2016
16:43:51
я понимаю что оффтопик, но: знает кто-нибудь чатик по Rust?

Google

andretshurotshka?❄️кде
07.10.2016
16:44:48
@proRust

Vasiliy
07.10.2016
16:45:21
^ а других и нету, только этот

Oleksandr
07.10.2016
16:45:43
ага, спасибо

Михаил
08.10.2016
16:57:59
Привет. Подскажите способ задать в интерфейсе статик метод

Mike
08.10.2016
17:00:04
Статик поле доступно только с самого класса. Соотвественно интерфейс у вас для класса быдет отдельный, не как для объекта

Михаил
08.10.2016
17:00:19
а можно пример?
я щас опишу что я хочу примерно

Admin
ERROR: S client not available

Mike
08.10.2016
17:01:03
https://www.typescriptlang.org/play/index.html#src=class%20MyClass%20%7B%0D%0A%20%20%20%20public%20static%20qq%3Anumber%3B%0D%0A%7D%0D%0A%0D%0Ainterface%20HasQQ%20%7B%0D%0A%20%20%20%20qq%3Anumber%3B%0D%0A%7D%0D%0A%0D%0Alet%20c%20%3D%20new%20MyClass()%3B%0D%0A%0D%0Alet%20i%20%3D%20MyClass%3B%0D%0Ai.qq%3B

Михаил
08.10.2016
17:01:15
Хочу делать следующее:
interface Prototyped {
proto();
}
class PrototypedObject implements Prototyped {
public name: string;
static proto() {
return { name: "string" };
}
}
class SomeWorker {
public process(object: typeof Prototyped) {
var proto = object.proto();
...
}
}

Mike
08.10.2016
17:01:36
не так не получится
если class implements интерфейс, то это означает что объекты этого класса имплементируют интерфейс

Михаил
08.10.2016
17:02:06
я нашел вот такой совет http://stackoverflow.com/a/13974799 но он не работает

Mike
08.10.2016
17:02:10
статика так не рабоатет

Михаил
08.10.2016
17:02:20
я понимаю, но можно как-то иначе это описать?

Mike
08.10.2016
17:04:15
вы хотите принять параметром process именно класс а не объект?

Михаил
08.10.2016
17:04:30
ага

Mike
08.10.2016
17:04:36
сейчас покажу как
https://www.typescriptlang.org/play/index.html#src=interface%20Prototyped%20%7B%0D%0A%20%20%20%20proto()%3B%0D%0A%7D%0D%0A%0D%0Aclass%20PrototypedObject%7B%0D%0A%20%20public%20name%3A%20string%3B%0D%0A%20%20static%20proto()%20%7B%0D%0A%20%20%20%20return%20%7B%20name%3A%20%22string%22%20%7D%3B%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Aclass%20SomeWorker%20%7B%0D%0A%20%20public%20process(object%3A%20Prototyped)%20%7B%0D%0A%20%20%20%20var%20proto%20%3D%20object.proto()%3B%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Alet%20worker%20%3D%20new%20SomeWorker()%3B%0D%0Aworker.process(PrototypedObject)%3B
класс сам по себе спокойно может удовлетворять интерфейсам. Т.к. типизация в typescript структурная а не номинальная всё работает само по себе.

Google

Михаил
08.10.2016
17:11:39
Понял, спасибо
IDE так показывает что аргумент, передающий в process() не имеет proto
я просто хотел чтобы она в самом классе подсказывала
чтобы не забыть заимплементить сразу

Mike
08.10.2016
17:12:23
почему это не показывает
должно, он же интерфейсом объявлен
посмотрите в плейграунде же показывает

Михаил
08.10.2016
17:15:50
я хотел чтобы ошибка выпадала на месте объявления класса
вот я о чем

Mike
08.10.2016
17:15:56
а
понял
насколько мне известно так нельзя сделать в принципе
через abstract static не получилось
да, видимо никак

Михаил
09.10.2016
17:11:35
аналогично static:: в пхп

Aleh
09.10.2016
19:39:11
https://github.com/moment/moment/blob/develop/moment.d.ts
так, почему функция moment никак не экспортится? Как ее вообще вызывать?