будет как с left-pad 😏
опана
новый чат
TypeScript это майки?
На практике нет
TypeScript это майки?
yes
типа вместо vbscript?
че
типа js с типизацией
аа, понял
Vasiliy какой у тебя был вопрос
ради которого ты чат сделал
ну их много
из последнего: как обновлять тайпинги?
из последнего: как обновлять тайпинги?
х** кто ответит
у меня в проекте до сих пор tsd еще
и дефинишины в гите, потому что каждый билд таскать из гх так себе удовольствие
из последнего: как обновлять тайпинги?
typings не умеет в update
что прескорбно
понял, т.е. пока что нужно все время переустанавливать тайпинги ручками если хочешь обновиться
у меня это процесс не такой частый должен сказать)
теперь хочу найти нормальный стартер на тайпскрипте, попробую тут http://andrewhfarmer.com/starter-project/, нашлось 2 только: https://github.com/barbar/vortigern и https://github.com/birkir/react-typescript-iso-kit
вот с этим хз, не интересовался
так да, имя никакое не запилите? @protypescript например
а как это сделать для группы?
это же супергруппа
настройки - edit - edit public link
что-то в этом духе
@typescriptru
ну, теперь из других чатов можно попроще линк давать)
сходу нашел порядка 10 стартеров и кучу примеров, из интересных пока только такой https://github.com/djeeg/example-react-router-universal-lazyroutes-typescript, сейчас попробую свой простенький запилить
кто-нибудь знает чем отличаются тайпинги react & react-global?


typings search --name react-global
react-global dt http://facebook.github.io/react/ 2 2016-03-17T12:06:54.000Z



typings search --name react
react dt http://facebook.github.io/react/ 2 2016-06-02T15:15:22.000Z
react npm https://www.npmjs.com/package/react 1 2016-06-01T17:52:40.000Z
подозреваю наличием declare module "react" :)
ммм, а если у меня 100500 ошибок вроде: error TS1005: '>' expected. error TS1005: ')' expected. error TS1005: ':' expected.
это я что-то нафакапил в окружении или надо просто все переписать?)
типа jsx шаблоны не работают?
1. либо не указал в проекте, что jsx тоже работает 2. либо расширение tsx где-то забыл
ну или оба варианта
вот тут у меня все работает https://github.com/vyorkin-play/hello, можно подсмотреть
ага, понял, ща
ну на простых штуках я уже потыкал, вот сейчас в живое вкорячиваю
еще в тсконфиге надо указать как рендерить jsx
в смысле режим
вот только что как раз это и сделал)
осталось всего 6 ошибок, огонище
они еще недавно в typings переименовали ambient в global, это очень сбивает с толку =/
они еще недавно в typings переименовали ambient в global, это очень сбивает с толку =/
Зато теперь отражает суть
+1
https://www.npmjs.com/package/tsd не нужен, правильно? typings?
да
🙈
вроде прочитал про модули и неймспейсы еще раз и вот это тоже https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html
все равно пока не понял назначение react-global.d.ts
типа чтобы можно было везде писать React и ReactDOM и ничего не импортировать самому?
ну, с react-global React объявлен во всех файлах как React
ага
ок, ладно, надо пробовать
хм
как так может быть?
т.е.

typings search --name react-addons-create-fragment
react-addons-create-fragment dt http://facebook.github.io/react/ 1 2016-03-16T15:55:26.000Z

но

❯ typings install dt~react-addons-create-fragment --global --save
typings ERR! message Unable to find "dt~react-addons-create-fragment" ("npm") in the registry. Did you want to try searching another source? Also, if you want contribute these typings, please h
в npm’e почему то ищет
переустановил и стало искать там где надо
похоже была страрая версия просто
мда, а для бетки второго вебпака тайпингов пока нет (:
а ты хотел webpack.config на ts писать?
я просто по полной заморочился сейчас да
о.о
ну есть же такие штуки https://github.com/js-dxtools/webpack-validator
почему бы тогда вместо этого его на ts не писать, и помнить ничего не нужно
это да, я согласен. Я вообще еще второй webpack не смотрел, знаю только, что es6 modules завезли и все(
чуваки уже в продакшене его катают и вроде ничо
да я вообще не понимаю, почему они просто слово beta не уберут из версии
2.1 уже блин
а все beta)
мб потом пихнут в 2.2 ломающие изменения
опасно )
сейчас попробую законтрибьютить тайпинги, но я много чего не знаю, но хотя бы начну, заодно разберусь как писать их
как вообще контрибьютить туда? кто-нибудь уже это делал?)
может они стараются доки дописать, а то у них до сих с этим весьма печально
пул реквест и поехал, как еще?)
форкаешь, правишь, пушишь и pr
так вроде beta это для стабильного api
короче, не ясно
может мое терпение лопнет и я сяду, да переведу на webpack2 :)
т.е. это вполне норм практика создавать vendor.d.ts и там описывать какие-то свои самые примитивные типы ?
ну и reference не забыть на него добавить
свои?
ну если нет тайпингов для пакета
и я мигрирую с js на ts и мне нужно по-быстрому убрать ошибки
а, я просто в корне src добавляю vendor-name.d.ts
около js соответственно тоже d.ts
destructuring оч странно выглядит(
({ foo }: { foo: boolean }): string =>
два раза одно и тоже
type Foo = { foo: boolean }
({ foo }: Foo)
ну да, вообще не проблема, особенно в моем случае сейчас)
понятно, что так ({ foo: boolean }) => не получилось бы реализовать
я так понял что для ноды пользоваться надо этим https://github.com/TypeStrong/ts-node
ts-node лучше, но у меня свой скрипт для этого
а для unit tst в ts ничего особенного нет? или тут скорее при миграции меньше писать просто
я моку юзаю
ну, т.е. ничего особенного нет)
mocha + cucumber у нас
я для начала пока тупо сделал в корне проекта (в ./src) globals.d.ts и там описываю свои типы, а недостающие типы пакетов описываю в vendors.d.ts
кстати, кто как импортит css?
const styles = require(‘./styles’) :D
с css-modules
да, я тоже так
но попахивает
я видел такое еще https://github.com/Quramy/typed-css-modules
я видел такое еще https://github.com/Quramy/typed-css-modules
Я как раз думал на эту тему.
я так понял что для ноды пользоваться надо этим https://github.com/TypeStrong/ts-node
А зачем это?
Чтобы выкинуть транспилер? Но зачем?
Кстати, тут был вопрос про контрибьютинг в typings. Кто-то разобрался как это делать? А то я хотел пару модулей залить но не нашел с ходу, как и куда. Везде старый дэтээс всплывает на гитхабе.
Чтобы выкинуть транспилер? Но зачем?
в dev-environment удобно по-быстрому запустить, например, тест
например, чтобы писать
  "scripts": {
"start": "node src/server/boot.js",
boot.js:

require('ts-node').register({ project: './tsconfig.json', });
require('./run.tsx');
долго стартовать будет же
а там уже express на ноде
в dev-environment удобно по-быстрому запустить, например, тест
Вот про тесты не подумал. Кстати, а вот скажите мне, что у вас с тестами. Потому что я их для TS библиотеки на JS пишу. Потому что не хочу в src/test их класть, а хочу в test.
т.е. перезапуск дольше, при большом проекте может вполне минуту висеть
boot.js:

require('ts-node').register({ project: './tsconfig.json', });
require('./run.tsx');
А зачем?
ну я просто не знаю как по-другому
поэтому)
Аааа
Вот про тесты не подумал. Кстати, а вот скажите мне, что у вас с тестами. Потому что я их для TS библиотеки на JS пишу. Потому что не хочу в src/test их класть, а хочу в test.
мой вариант не понравится, наверное, у меня юнит-тесты лежат прямо рядом с тестируемым файлом, т.е. условно Component.tsx и рядом Component.spec.tsx
ну я просто не знаю как по-другому
так webpack'ом тем же на CI билдить и складывать в dist или еще куда, с target'ом node
мой вариант не понравится, наверное, у меня юнит-тесты лежат прямо рядом с тестируемым файлом, т.е. условно Component.tsx и рядом Component.spec.tsx
Я, честно говоря, пока не определился, что мне в этом смысле нравится.
так webpack'ом тем же на CI билдить и складывать в dist или еще куда, с target'ом node
А что мешает сразу в билд складывать во время разработки?
tsc -w
гит засорять, фе
диффы потом в PR смотреть лишние)
долго стартовать будет же
а как по-другому сделать?)
какие альтернативы?
а как по-другому сделать?)
я ж выше написал, закомпилить тем же webpack'ом или просто tsc во время билда на CI
Ну вот пример конфига проекта для разработки на TS.
гит засорять, фе
Где?
ну, если во время разработки мы эти файлы складываем в проекте, то дальше они ж видимо в гит пойдут или я неправильно понял?
// .gitignore
node_modules/
typings/
build/

// package.json
"build": "rm -rf build && tsc",
"preinstall": "typings install && npm run build",
а что у тебя в tsconfig.json?
outDir: ‘./build’ ?
yep
Но это чисто под сервер сайд.
Я вот только недавно разнес серверную часть и клиентскую на разные пакеты.
Разобрался заодно, как подключать npm с typescript, чтобы без typings но с типизацией :)
moduleResolution: node?
кстати быстро стартует с ts-node, для моего маленького простого примера сойдет пока, но вообще я так не хочу оставлять, конечно, пока только пробую все
moduleResolution: node?
По-моему да.
ага, ну я classic пока юзаю)
А, не, classic
Classic

This used to be TypeScript’s default resolution strategy. Nowadays, this strategy is mainly present for backward compatibility.
оно не ходит в node_modules
Вот это ходит
а, ну по умолчанию для commonjs включается resolution node
Тогда я не знаю. У меня не прописан moduleREsolution.
если module commonjs, то resolution node
по умолчанию
он эксплицитный
то есть наоборот
короче дефолтный resolution зависит от остальных параметров(target и module вроде)