@typescript_ru

Страница 47 из 669
Sergey
22.08.2016
13:28:29
Потому как есть еще ресурсы в проекте, которыми нужно управлять.

Artur
22.08.2016
13:29:07
Для редактора это очень плохое поведение
Может я что-то не так понял. Если я открывают TS проект, почему tsconfig.json не должен лежать в корне???

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

Nikita
22.08.2016
13:29:57
я вот ща пару дней пытаюсь начать проект на ТС) и хочу вам сказать это пиздец, какое нетривиальное приключение)

Google
Artur
22.08.2016
13:30:21
За кастомизацию отвечает какой-нибудь параметр конфигурации. Я в WS настраивал кастомные конфиги и разносил разные настройки по папкам (UI/Server). Но это более редкий случай, на мой взгляд.

Nikita
22.08.2016
13:30:46
ща прям желание нахрен его выкинуть)

Artur
22.08.2016
13:30:59
hlomzik
22.08.2016
13:31:07
Nikita
22.08.2016
13:31:19
неа, мне стремно на 2 версию))

src/redux/configureStore.ts(7,19): error TS2307: Cannot find module 'redux-thunk'. src/redux/configureStore.ts(8,20): error TS2307: Cannot find module 'redux-logger'. src/redux/configureStore.ts(9,23): error TS2307: Cannot find module '@dlghq/dialog-messenger'. src/redux/configureStore.ts(22,7): error TS2304: Cannot find name '__DEV__'. src/redux/configureStore.ts(32,7): error TS2304: Cannot find name '__DEV__'. src/redux/configureStore.ts(32,25): error TS2339: Property 'devToolsExtension' does not exist on type 'Window'. src/redux/configureStore.ts(33,45): error TS2339: Property 'devToolsExtension' does not exist on type 'Window'. src/typings/globals.d.ts(11,9): error TS2669: Augmentations for the global scope can only be directly nested in external modules or ambient module declarations. src/typings/redux-logger.d.ts(3,16): error TS2664: Invalid module name in augmentation, module 'redux-logger' cannot be found. src/typings/redux-thunk.d.ts(3,16): error TS2664: Invalid module name in augmentation, module 'redux-thunk' cannot be found.

вот так вот весело)

Sergey
22.08.2016
13:31:44
Может я что-то не так понял. Если я открывают TS проект, почему tsconfig.json не должен лежать в корне???
Потому что ts проект это только часть "проекта", с node_modules, assets и прочие барахло.

hlomzik
22.08.2016
13:32:06
неа, мне стремно на 2 версию))
у меня было много мелких проблем, которые пришлось обходить костылями. в итоге на какой-то очередной плюнул и обновился до next, пропала эта и предыдущие проблемы %)

Artur
22.08.2016
13:32:13
неа, мне стремно на 2 версию))
Чего же там стремного. Я уже месяц на ней, полет нормальный.

Nikita
22.08.2016
13:32:51
мне на бете реакта/редакса/любой либы, которой пользуюсь больше месяца тоже норм) А пока только пытаюсь понять - не весело это, на бете пытаться)

Google
Nikita
22.08.2016
13:33:57
а я и выкинул))

ну то есть поставил что надо и переписал частично под себя

Artur
22.08.2016
13:34:26
И если возникают проблемы с модулями (отсутствуют в @typings), то просто добавляете свои декларации с declare module 'fucking-module';

Nikita
22.08.2016
13:34:29
только это вообще ни разу не юзерфрендли

Sergey
22.08.2016
13:34:30
А это уже, извините, вопрос организации проекта. Если у вас монолитный все-в-одном, наверное надо настраивать кастомно.
Берем новый angular-cli и смотрим где корень ts проекта. Причем tslint лежит не в корне ts-проекта )

Nikita
22.08.2016
13:35:06
подскажи, что вот это значит src/typings/redux-logger.d.ts(3,16): error TS2664: Invalid module name in augmentation, module 'redux-logger' cannot be found.

Sergey
22.08.2016
13:35:31
А при чем тут ангуляр?
К вопросу о организации проекта на ts

Nikita
22.08.2016
13:35:44
https://gist.github.com/nkt/52403f3321401d1085b7799f8f5e2b50

Artur
22.08.2016
13:35:55
Без понятия что там ангуляр напридумывал. Я руководствуюсь документацией по TS.

Nikita
22.08.2016
13:36:12
вот так тайпинг выглядит, подключен через srd/index.d.ts, который указан в typings.json#files

Sergey
22.08.2016
13:36:40
Сложно этим мудням было добавить настройку в vscode

Alex
22.08.2016
13:39:37
спасибо всем за комментарии, как вывод - npm тут сильно проигрывает экосистемам других современных языков где таких проблем нет. Еще @izatop справедливо заметил что можно через тесты разрабатывать, возможно так и поступлю
линкованные с глобальными модули нормально, у меня много таких, (т.к. я пользуюсь очень многими модулями собственной разарботки), проблем особых не возникает, у меня бысстрее с ними работать получается, хотя среда становится менее гибкой (впрочем я особых проблем не замечал)

Google
Artur
22.08.2016
13:40:10
Наверняка можно указать tsc -p /path/to/tsconfig.json

Sergey
22.08.2016
13:40:27
Так она же там есть
Там есть настройка tsd, а не tsconfig

Artur
22.08.2016
13:40:31
Ну т.е. путь к tsconfig.json

Sergey
22.08.2016
13:40:45
Интересно как она называется?

Nikita
22.08.2016
13:41:29
1.8ю10

ооок, но стремно. Но ок)

typescript ^1.8.10 → ^2.1.0-dev.20160822

круто)

Sergey
22.08.2016
13:42:37
А какая версия TS?
Ну конечно 2. Я про то, что нет настройка "рабочей папки" в vscode

Artur
22.08.2016
13:42:54
Интересно как она называется?
Нет такой походу. Посмотри вот этот ишью https://github.com/Microsoft/TypeScript/issues/5287

Sergey
22.08.2016
13:43:27
Alex
22.08.2016
13:44:13
Artur
22.08.2016
13:47:39
typescript@next
Там вроде -dev версия

Aleh
22.08.2016
13:48:02
2 это beta, а next уже как написали 2.1

кстати, как там с npm? Нормальные там уже тайпинги?

Google
Sergey
22.08.2016
13:49:24
Все зависит от зависимостей

Aleh
22.08.2016
13:49:30
логично)

Sergey
22.08.2016
13:49:40
Ну да, не все )

Aleh
22.08.2016
13:49:44
но там были какие-то траблы с паблишем в npm

типа оно из typestrong не тянуло папки или еще что

в итоге там совсем битые пакеты были

я больше потом не тестил

Sergey
22.08.2016
13:50:39
У меня мало зависимостей. Вот только lodash

Aleh
22.08.2016
13:52:44
вот в redux клево, там есть index.d.ts

Nikita
22.08.2016
13:54:39
в redux да. но написать middleware с тайпингами - это прям так себе удовольствие

Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.

вот это сохранилось, что это вообще значит?

Aleh
22.08.2016
13:58:58
Nikita
22.08.2016
14:02:28
покажешь пример кода?

еще вопрос. Вот у меня есть библиотека на ts написанная. Мне ее обязательно компилить в js, если ее использование предполагается только из TS?

Andrey
22.08.2016
14:09:45
если для публикации, то лучше скомпилировать

Nikita
22.08.2016
14:10:25
лучше, или обязательно?

я ей пользуюсь внутри компании и на ts. То есть babel я не компилю, например. Прописываю его в исключения для webpack

Дмитрий
22.08.2016
14:13:38
лучше, или обязательно?
Я делаю в package.json скрипт postinstall, который при установке собирает ts версию, es6 и es5. И пользователь всегда имеет возможность выбора

Nikita
22.08.2016
14:14:11
а что значит собирает ts версию?

Google
Дмитрий
22.08.2016
14:14:49
Ну типа бандлит в один файл для удобства использования. Это уже точно не обязательно)

Artur
22.08.2016
14:15:49
Даже в случае внутреннего использования, лучше компилировать и собирать пакет с декларациями.

Nikita
22.08.2016
14:17:03
я помню твой доклад, и смотрел репо. Но не понимаю, почему так сделано

Artur
22.08.2016
14:17:46
Почему TS исключается из репы?

Nikita
22.08.2016
14:18:10
зачем мне компилить ts, если я просто могу прописать ts-loader?

Artur
22.08.2016
14:18:22
Nikita
22.08.2016
14:19:00
это большой вопрос, что увиличит время сборки. мэпинг сорсмэпов, или трансляция ts в es6

Artur
22.08.2016
14:19:07
Ну и потом, представь, что ты обновляешь TS в аппке. А у тебя модуль несовместим с новой версией.

Nikita
22.08.2016
14:19:34
а плевать. Если несовместим код, скорее всего не совместимы тайпинги

Nikita
22.08.2016
14:19:53
подхватывает. Но через жопу. Или это надо тоже пару дней настраивать)

Artur
22.08.2016
14:20:03
Впрочем, чисто для внутренних нужд можно и так.

У меня все же основная тема была как правильно для тех и других.

Поэтому, если тебе кажется, что от этого нет выигрыша, наверное можно на чистом TS пакеты публиковать.

Nikita
22.08.2016
14:21:33
просто я объясню свой кейс. Есть отдельно либка, которая работает с сервером. Представляет всякое разное api с интерфейсами. Его разработку хочется вести отдельно. Так вот оно экспортирует 1 класс наружу. Что указывать в typings - не понятно

а вот нельзя. У меня ts орет, что Module build failed: Error: Typescript emitted no output for <module-entry-point>

Artur
22.08.2016
14:22:53
просто я объясню свой кейс. Есть отдельно либка, которая работает с сервером. Представляет всякое разное api с интерфейсами. Его разработку хочется вести отдельно. Так вот оно экспортирует 1 класс наружу. Что указывать в typings - не понятно
В typings же ничего указывать не надо. TS подцепит декларации библиотека (если ты их сгенерируешь указав declaration: true в tsconfig.json) и укажешь types/typings на module-index.d.ts в package.json.

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