
da horsie
21.05.2017
06:28:47
дублирование своего рода

Friedrich
21.05.2017
06:29:24
А ты бы в отдельный тип это вынес.
type RowNumber = 0 | 1 | 2;

da horsie
21.05.2017
06:29:26
либо делать искуственный тип и его экспортить только ради типизации
я вынес

Google

da horsie
21.05.2017
06:29:36
как раз про это и говорю

Friedrich
21.05.2017
06:29:39
А чо, нормально. Круто же!

da horsie
21.05.2017
06:29:41
тогда его надо экспортировать
type Coordinate = 0 | 1 | 2;

Friedrich
21.05.2017
06:30:33
Можно и не экспортировать. От паттерна использования зависит.

da horsie
21.05.2017
06:30:53
ну как бы засирается экспорт полностью искусственной штукой. тип ради типа

Friedrich
21.05.2017
06:30:56
(но лучше экспортировать, конечно, а не то наркоманы потом будут твой тип вычислять всякими магическими способами, как я вчера)

da horsie
21.05.2017
06:31:36
если не экспортировать, то TS не догоняет, что 0 это правильное значение, и пиздит на меня :(
не везде, но в в некоторых сложных местах

Friedrich
21.05.2017
06:33:09
Вообще, мне кажется, что код нормальный. Можно поулучшать тут и там, если задаться конкретным вектором (скажем, для Cell.player не прописано, что он бывает undefined), но в целом очень неплохо.

da horsie
21.05.2017
06:33:16
а можно по типу итерировать?
вроде Coordinate.map(...)
чтобы по всем допустимым значениям прошлось?

Google

Friedrich
21.05.2017
06:33:55
Есть специальные волшебные штуки для преобразования свойств типа. Mapped types называется, кажется.
Чтоб по значениям проходиться — не, такой фичи не помню. Разве что по значениям энума. Но энумы это такое.

da horsie
21.05.2017
06:35:23
ооооо
вроде похоже на то, что мне надо
ща попробую
не, прям там слету не вышло
@fvnever а насколько нормально в тайпскрипте класть каждый класс в отдельный файл?
у меня модуль распух на 150 строк, и уже начало задалбывать скролить по файлу

Mike
21.05.2017
07:04:44

da horsie
21.05.2017
07:05:48
а какой-то аналог автзагрузки по имени модуля/неймспейса есть?
чтобы импорты не писать по сто раз
хотя и хрен бы с ним. когда начинаешь по модулям раскидывать сущности, выплывают косяки дизайна
оно даже и хорошо

Friedrich
21.05.2017
07:51:07

Дмитрий
21.05.2017
07:52:47
Я ещё и сами типы отдельно выношу, чтобы не мельтешили)

da horsie
21.05.2017
07:54:41
т.е. они этот код будут юзать как TS, а не как готовые скомпилированные модули

Дмитрий
21.05.2017
07:55:25

Google

Dreamerinnoise
21.05.2017
07:55:43

da horsie
21.05.2017
07:55:47
внутренняя - никак. я беспокоюсь о фасаде
но вообще та моя конкретная проблема оказалась не проблемой

Дмитрий
21.05.2017
07:56:29

da horsie
21.05.2017
07:56:37
все работает и без экспорта)
а вот еще вопро
с
getBlah(): Foo | undefined - тут undefined можно не добавлять, его и так можно вернуть, да?

Friedrich
21.05.2017
08:06:37

da horsie
21.05.2017
08:06:55
спасибо
а какие самые строгие настройки в этом плане?

Friedrich
21.05.2017
08:09:11
(либо компилятору в командной строке передаёшь, либо указываешь в tsconfig.json)

da horsie
21.05.2017
08:11:10
о круто круто спасибо
а какой правильный линтер для TS?
вот, скажем, надо писать public перед методами или хер с ним?

Friedrich
21.05.2017
08:38:02
tslint же. Разве есть ещё какой-то? :)
Ну и там вкати для начала tslint:recommended, а дальше под себя настраивай.

da horsie
21.05.2017
08:46:15
ну я это. не бейте сильно. в гугле много противоречивого. а вы эксперты)

Google

Denis
21.05.2017
09:55:53
Добрый день, прошу помощи сильных мира сего. Сам очень люблю TS как язык, но каждый старт проекта на нем похож на своеобразную пытку из-за необходимости вручную искать и подключать d.ts библы, а если их нет, то изворачиваться через declare any
Так вот вопрос, какими средствами/утилитами пользуетесь для облегчения участи TS-программиста?

Friedrich
21.05.2017
09:56:46
npm install --save-dev @types/libraryname
Да, изредка этот вариант подводит, но тогда я стараюсь писать тайпинг и контрибьютить его в DefinitelyTyped :)

Dreamerinnoise
21.05.2017
09:58:13
^

Denis
21.05.2017
09:58:37
а поиск она производит в гитхабе или npm?

Friedrich
21.05.2017
09:58:58
В npm автоматически заливаются тайпинги из DefinitelyTyped.

Denis
21.05.2017
09:59:30
о круто, я знал про этот инструмент, но опасался его использовать, так как думал, что там все запоздавшее или ограниченное

Friedrich
21.05.2017
09:59:39
Сегодня этот вариант заменяет нам утилиты tsd и typings, которыми приходилось пользоваться раньше.

Denis
21.05.2017
10:00:23
а было дикое желание закончить и залить в dt

Admin
ERROR: S client not available

Friedrich
21.05.2017
10:01:00
Можно было и недопиленное залить.

Denis
21.05.2017
10:01:15
тип сообщество дополнит?

Friedrich
21.05.2017
10:01:17
Если каждый будет делать нужные ему кусочки и делиться с остальными — так победим.
А если каждый будет каждый раз сам делать у себя нужные кусочки, и ни с кем не делиться — тогда не победим :(

Denis
21.05.2017
10:01:58
хз почему мне такой вариант сразу в голову не пришел, видимо не с того угла смотрел на проблему, спасибо
а какие вообще инструменты посоветуете для работы с TS

Friedrich
21.05.2017
10:02:43
Мне очень нравится vscode с соответствующим плагином.
Ни разу не подводила.

Denis
21.05.2017
10:04:01
я пока ограничиваюсь WebStorm как IDE и tslint
для сборки использую самопальный npm run-скрипт

Google

Denis
21.05.2017
10:05:38
а VS code дружит с смарт подстановкой(подбор вариантов в зависимости от типа)?

Friedrich
21.05.2017
10:05:42
Мне на разных проектах доводилось пользоваться Visual Studio + Resharper или IDEA. Так вот, Visual Studio очень плохо умеет в фичи новых версий тайпскрипта (всегда отстаёт на минорную версию), так что ей пользоваться тяжело. IDEA не отставала, но в ней у меня эпически тормозил tslint (прям по пять-десять секунд после вставки каждой строки).

Nikita
21.05.2017
10:07:46

Denis
21.05.2017
10:08:19
да, тормозы tslint-а очень заметные, те вполне спокойно можно попробовать использовать VS code как основную среду?
просто раньше отношение было примерно на уровне смарт текстового редактора(как напр sublime) и это несколько пугало

Friedrich
21.05.2017
10:09:22

Denis
21.05.2017
10:11:23
понимаю, что на вкус и цвет фломастеры разные)
но интересует как дружит vscode с ftp/sftp и рефакторингом(хватит на уровне простых замен наименований)

Дмитрий
21.05.2017
10:12:04
Нормально дружит с рефакторингом
В ts всё отлично с тайпингами, надо ещё радоваться))
Сейчас посчитал — у меня в проекте 15 кастомных тайпингов
Радуйтесь, что у вас не так ?

Aleh
21.05.2017
10:13:00
Кастомные = твои?

Дмитрий
21.05.2017
10:14:29
Ну типа того
Как минимум, каждый из них вручную отредактирован после конвертации, больше половины — написаны лично ?

Friedrich
21.05.2017
10:16:17
А чем и откуда конвертировалось?

da horsie
21.05.2017
10:18:21
Разбил на модули. Доктор, насколько все плохо? https://github.com/f3ath/tic-tac-toe-typescript

Denis
21.05.2017
10:20:58
а зачем [0,1,2] в Board-е?
в самом начале

Aleh
21.05.2017
10:24:32

da horsie
21.05.2017
10:24:38

Aleh
21.05.2017
10:29:20
По неймингу: называть интерфейс названием паттерна такая себе затея. В тестах динамически строить имена тож не очень