
Artur
19.07.2016
14:10:49
И это печаль
А при сборке через npm:package он просто добавляет декларации с подмодулями собирая их в один файл в typings
Что в IDE задублирует определения

Google

Aleh
19.07.2016
14:12:37

Ҫѐҏӗѫӑ
19.07.2016
14:12:38
есть бета 2.0

Aleh
19.07.2016
14:12:45
npm пока что не спасет
половина пакетов побитые до сих пор, issue все еще висят в их автопаблишере

Artur
19.07.2016
14:13:06
npm:package ставит из локальной копии
в этом отличие от npm~package
есть бета 2.0
Может я там не разобрался до конца, но вообще стоит.

Aleh
19.07.2016
14:16:35
а, и там вроде еще репаблиш не запилили
короче все сложна

Artur
19.07.2016
14:20:03
https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/
https://blogs.msdn.microsoft.com/typescript/2016/07/11/announcing-typescript-2-0-beta/

Ҫѐҏӗѫӑ
19.07.2016
14:26:50
там еще много проблем, да

Aleh
19.07.2016
14:27:20

Google

Aleh
19.07.2016
14:27:29
костылями не подопрешь, там банально битые пакеты лежат
например history без папки lib
ну там вроде много таких пакетов

Ҫѐҏӗѫӑ
19.07.2016
14:30:59
я и не говорил же что тайпингс не нужен)
именно поэтому

Aleh
19.07.2016
14:32:09
ага, я начинаю понимать, как тебя понимать)

Artur
19.07.2016
14:33:00
Всем declare module "*"; ребята :)

kaflan
19.07.2016
14:38:23
почему тайпскрипт проше джс?
в понимании?

Dreamerinnoise
19.07.2016
14:41:27
Мой коллега(джава, C++) после того, как увидел примеры кода на ts, кажется vscode, сказал, что читать такой код проще, он сам себя описывает, сам документирует за счёт типов. Как-то так.

Andrey
19.07.2016
14:59:12

Evjeni
19.07.2016
14:59:50

Aleh
19.07.2016
15:01:05
почему тайпскрипт проше джс?
в js основной принцип до es6 это "ебитесь как хотите", ts дает чуть больше стандартных вещей. Это не значит, что на ts код будет лучше или что-то в этом духе, но новичкам стрелять себе в ногу чуть сложнее

Dreamerinnoise
19.07.2016
15:05:00

Aleh
19.07.2016
15:06:13
но в тоже время, нельзя сказать, что ts так уж много добавляет в js, не так уж меньше становится способов стрелять в ногу

Dreamerinnoise
19.07.2016
15:06:45
обмазаться декораторами по самое уши

Artur
19.07.2016
17:09:53
@luanre кажется TS 2.0 и @types решает твою проблему.
Глобальные зависимости поставятся из @types, которые у тебя будут в dependencies твоих приватных модулей.

Nikolay
19.07.2016
17:11:36
Мне тоже так кажется, но в нашей версии nexus нет поддержки scoped packages

Google

Artur
19.07.2016
17:11:37
Я сейчас библиотеку обновил и понял, что теперь же у нас все полноценно работает с репой типов, ставятся зависимости как и должно. @types/node само подцепилось. Правда я так думаю, могут возникнуть проблемы с версиями.

Nikolay
19.07.2016
17:12:00
Вот и думаю над костылями

Artur
19.07.2016
17:12:07
Обновить версию? Я недавно поставил последнюю версию, ушло полчаса времени.
Нет там миграции никакой?

Nikolay
19.07.2016
17:12:53
В крупном enterprise все очень медленно)

Artur
19.07.2016
17:13:06
Понятно)

Nikolay
19.07.2016
17:13:23
Пока единственное решение, которое я придумал - это запатчить typings

Artur
19.07.2016
17:13:41
Но боль никуда не денется)

Дмитрий
19.07.2016
17:16:02
но в тоже время, нельзя сказать, что ts так уж много добавляет в js, не так уж меньше становится способов стрелять в ногу
Немного, но то, что очень сильно требуется с точки зрения джавистов, например.
Недавно просто как раз объяснял современный фронтенд другу, он typescript воспринимал со слезами счастья на глазах)) Объявление типов, дженерики, enum,чуть более вменяемый синтаксис классов, вот это всё

Aleh
19.07.2016
17:17:03
ну знакомые и не сильно нужные protected, ага)

Саторин
19.07.2016
17:17:40
Кстати насчет enum, есть какая то либа чтобы сделать их получше?

Nikolay
19.07.2016
17:17:50
Ну если сделать вот так: typings install смотрит зависимости в package.json, находит зависимости с указанным полем typings, ищет в корне typings.json и сливает зависимости оттуда. Мне кажется, должно сработать
А чем enum не нравится?

Дмитрий
19.07.2016
17:18:23

Саторин
19.07.2016
17:18:55

Nikolay
19.07.2016
17:20:08
Имхо, для этого лучше использовать объекты

Artur
19.07.2016
17:22:07

Саторин
19.07.2016
17:22:09
Мб свой велосипед сделать

Дмитрий
19.07.2016
17:24:29
Мб свой велосипед сделать
Я как-то начинал свой велосипед на символах)) Потом наткнулся на эту либу и решил не переизобретать написанное

Google

Саторин
19.07.2016
17:28:05

Aleh
19.07.2016
17:29:20

Саторин
19.07.2016
17:30:11
а зачем?
Ну у меня например enum это слой в рендере, нужно перебрать все слои поочередно

Aleh
19.07.2016
17:30:28
О.о
может enum не для этого?))

Саторин
19.07.2016
17:31:07
Или еще, нужно сделать тест что некая функция все значения енама обрабатывает

Aleh
19.07.2016
17:32:07

Саторин
19.07.2016
17:32:37

Aleh
19.07.2016
17:32:59
Не важно
так если по-разному, то надо и разные кейсы описывать

Дмитрий
19.07.2016
17:33:14

Саторин
19.07.2016
17:33:45
При чем тут сет?
я не понял кейс, честно говоря этот
Ну грубо говоря есть список картинок и у каждой картинки определенный слой - верхний нижний или средний. Нужно вывести сначала все картинки на нижнем, потом на среднем, потом на верхнем.

Aleh
19.07.2016
17:36:09
в enum храните метку определения слоя, в каком-то списке храните порядок вывода

Саторин
19.07.2016
17:36:52

Aleh
19.07.2016
17:37:06
конечно, ведь enum не просто так поменялся
а в каком порядке вы будете перебирать важно ж наверное для enum
если даже он отдавал бы values, то в каком порядке?

Саторин
19.07.2016
17:37:41

Google

Aleh
19.07.2016
17:37:49
да вроде нет

Саторин
19.07.2016
17:37:57

Aleh
19.07.2016
17:38:02
с чего это вдруг

Дмитрий
19.07.2016
17:38:20
Это не гарантируется, вроде бы

Саторин
19.07.2016
17:38:49
Ну, бро, по реализации так. Enum в ts начинается с 0 и идет по возрастанию
В общем я сейчас делаю так - кроме enum еще экспортируется специальный объект класса унаследованного от enumdetails<T> где есть values и нужные кастомные методы. Сам список значений выковыривается из нативного enum через рефлексию

Дмитрий
19.07.2016
17:47:36
*если это не enum const

Саторин
19.07.2016
17:49:18
В стандартном естественно нет такого, если перебирать for..in еще и цифровые и символьные значения будут

Дмитрий
19.07.2016
17:56:26
Тебе сейчас проще всего взять эту либу и сделать лист Enum`ов с функциями внутри. Не перебор через values 100%. В общем суть в том, что лучше не возлагать такую вещь, как порядок на тонкости реализации.
Короче дело твоё, но что-то смутно тут не нравится, мне кажется, что мы тут сейчас Set/Map с сортировкой изобретаем))
Я бы вообще сделал массив функторов и не парился)

Саторин
19.07.2016
17:58:17
Так что все норм, спс
Я думал есть что то общепринятое


Дмитрий
19.07.2016
18:12:28
Эмм, поясни
Ну это если вместо ООП функциональное программирование использовать))
(условно) :
printLayer=(layer)=>print(layer)
bottom = printLayer(getBottom)
...
images.forEach(img=>img.printLayers([bottom,middle,top]))
Ну то есть абстрагируясь, в любом случае должна быть функция для печати слоя; вызывая её с нужными параметрами, делаем функции для печати конкретных слоёв, тогда можно просто сохранить их как массив и вызывать перебором, и изображение заведомо будет обрабатываться в нужном порядке

Саторин
19.07.2016
18:14:39
Ну я у тебя все равно явный список слоев вижу
Ну и я просто на слово функтор среагировал, не понял что ты имел в виду функцию

Дмитрий
19.07.2016
18:24:37
Ну я у тебя все равно явный список слоев вижу
Он у тебя есть изначально по условию, только тут это не отдельный enum а тупо список универсальных функций-геттеров каждого слоя в любом удобном тебе порядке. Фишка в том, что они инкапсулируют всю реализацию твоих слоёв. Отслюда уже один шаг до энумов, считай это и есть enum, только без побочных эффектов))
Функтор - это функция, которая принимает на вход другую функцию
Ладно, тут в любом случае не на пару постов тема?

Саторин
19.07.2016
18:28:33