
Max
22.04.2018
11:06:20
не должно, но тут надо просто попробовать и будет видно
лично у меня в проекте помоему ничего не отвалилось

Alex
22.04.2018
11:08:05
окей, у меня отдельный пакет где тайпинги 2.8.3, если я хочу его в другом проекте использовать, то там тайпинги должны быть не ниже?

Max
22.04.2018
11:10:09
ну если там используются фичи из 2.8 то да

Google

Kate
22.04.2018
12:38:27

Max
22.04.2018
12:39:19
Тут стоит уточнить, о каком lazy load вообще идёт речь?)

Kate
22.04.2018
12:41:35
динамическая подгрузка файлов, пока изучаю этот вопрос, мне еще интресно как ведет себя кеш браузерный, при повторной загрузке

Max
22.04.2018
12:42:54
Файлов в смысле TS исходников?

Kate
22.04.2018
12:45:32
да, стоит задача уменьшить размер выходного файла, где это возможно
наша библиотека для некоторых клиентов, не должна содержать всех модулей, количесво модулей зависит от данных полученных от апи

Леха
22.04.2018
12:47:18
Как правильно указать тайпинги для Vue плагина?
Отдельный пакет. Как указать путь к типам, чтобы VSCode подхватил сразу?

Alik
22.04.2018
12:49:53

Леха
22.04.2018
12:50:30
Мой плагин ))) Я автор и в @types его нет.
Я понимаю, что надо в package.json указать "types": "./lib/main.d.ts" и будет работать?

Alik
22.04.2018
12:53:57
понял, тоже когда то сталкивался с таким. сейчас нарыл в package.json проекта такую строку:
“devDependencies”: {
"@types/sequelize": "github:types/sequelize#505b409dc42199abf5f0df5a9d9e86010850909f",
}
вроде можно кастомную репу указать вместо types/sequelize

Max
22.04.2018
12:59:42

Alik
22.04.2018
13:01:01

Google

Леха
22.04.2018
13:01:41
Спасибо

Kate
22.04.2018
13:08:28

Антон
22.04.2018
14:13:35
Пытаюсь оформить бекэнд в ts. Пишу обработчик для роута в виде static get(ctx: Koa.Context) {}
Он ругается что Koa не найден
Если его импортировать, еслинт ругается что unused var
Как выйти из этой ситуации?

Morsik
22.04.2018
14:14:33
покажи что конкретно импортишь

Антон
22.04.2018
14:15:08
Коа
Т.е. import * as Koa
От него мне только тип нужен
@types/koa установил

Morsik
22.04.2018
14:16:10
import {Context} from 'koa'
попробуй так импортить

Антон
22.04.2018
14:17:33
Но еслинт все равно считает что это unused var

Morsik
22.04.2018
14:18:13
еслинт не прав, заткни его

Антон
22.04.2018
14:19:41
Как-то неправильно импортить лишнее только ради указания типа
хотя компайлер выпилит небось

Morsik
22.04.2018
14:21:29
кстати а зачем тебе еслинт, если есть тслинт?

Антон
22.04.2018
14:23:29
Да привык как-то. Не хочу лишний линтер ставить и плагин в иде

Sergey
22.04.2018
14:33:56
А почему у вас вообще еслинт ts файлы трогает? Он в них похоже не может

Антон
22.04.2018
14:35:18
eslint-plugin-typescript

Aleh
22.04.2018
14:35:57

Google

Aleh
22.04.2018
14:36:22

Антон
22.04.2018
14:37:00
Ясно

andretshurotshka?❄️кде
22.04.2018
15:24:05
Ясно
typescript/no-unused-vars — Prevent TypeScript-specific constructs from being erroneously flagged as unused

Антон
22.04.2018
15:54:18

Ilshat
22.04.2018
16:14:18
кто нить умеет делать extension в тайпскрипте?
типа того https://github.com/Microsoft/TypeScript/issues/9
у меня есть класс лефой либы, я хочу добавить доп метод ему

Max
22.04.2018
16:41:30
А не проще просто форкнуть?

Ilshat
22.04.2018
16:42:04
еслибы можно былобы то так и сделал бы
там я юзаю класс который юзает другой класс, вот мне нужно в нем доп метод добавить

Aleh
22.04.2018
16:43:24
Declaration merging не подходит?

Ilshat
22.04.2018
16:43:50
инстанс второго создается внутри первого
как вариант от обоих отнаследоватся и подменить, но это ваще кастыльно выходит

Max
22.04.2018
16:44:46
> инстанс второго создается внутри первого
Это называется агрегация, подходит только если не планируешь использовать приватные методы/поля

Vlad
22.04.2018
22:08:27
https://www.typescriptlang.org/docs/handbook/declaration-merging.html
Секция "Merging Namespaces with Classes".
Хотя нет, так метод в класс не добавить.

Ivan
22.04.2018
23:15:14
так там два пункта
1. мёржишь как интерфейс
2. добавляешь реализацию в прототип
да, получается что отдельно интерфейс отдельно реализацию мёржить , но что поделаешь?
это хорошо работает чтобы свои методы добавить в классы других библиотек

Ilshat
23.04.2018
02:25:21
Спасибо! , попробую

Google

васяДобрый
23.04.2018
04:05:20
Всем привет. У меня вопрос, есть ли смысл пытаться писать большое react/native приложение на TypeScript'e и какие подводные камни ожидать?

Artur
23.04.2018
04:31:57

Andrey
23.04.2018
04:34:11

Александр
23.04.2018
11:15:04
@yasobakatisobaka228 лол, нормас

Nikolay
23.04.2018
13:59:00
ребят, тут не так давно были вопросы про HoC'и в TS, написали небольшую статью про их написание:
https://habrahabr.ru/company/efs/blog/354104/

Samir
23.04.2018
17:40:13
U kogo nibud est opit s proektami v vscode, nodejs, typescript, gulp i kak podkluchit debugger?

Admin
ERROR: S client not available

andretshurotshka?❄️кде
23.04.2018
18:17:12
Netu

Евгений Vúffe
23.04.2018
18:19:19
Народ, никто не помнит как обьявить тип для JQueryDeferred<T> чтобы указать аргументы промису?
JQueryDeferred< (x: .., y: ...) => ... > ?
я кароч в итоге решил просто завернуть аргументы в обьект
JQueryDeferred<Args>
Args = { bla:string, ... }

Max
23.04.2018
19:22:12

Alex
23.04.2018
21:47:46
Как можно из
Type <A extends keyof T, B extends T[A], C>
Сделать
Type2<A extends SomeType, B extends SomeType[A]>
Или точнее привести второй к первому?

Morsik
23.04.2018
21:54:20
A extends keyof SomeType
вместо B Pick<B, A>

Alex
23.04.2018
22:00:51
Типа есть класс
class Some<A extends keyof C, B extends C[A], C> {
b: B;
a: A;
constructor (a: A, b: B)
}
Мне нужно оставить только C generic

Bogdan
24.04.2018
00:23:34
Чет не уверен что один женерик может от другого наследоватся
Юзаю TS в рамках того что умеют дженерики в C#, вродь норм
А в чатик как загляну.. Страшные вещи какие то

Google

andretshurotshka?❄️кде
24.04.2018
02:34:44

Vlad
24.04.2018
03:04:20
Ну наконец что-то интересное :)
> Чет не уверен что один женерик может от другого наследоватся
extends это в данном случае не наследование. А TypeScript - не C#, его система типов куда более выразительна.
Человек хочет простую и понятную вещь. Чтобы new Some<C>( 'attr', value ) давало ошибку компиляции, если attr это не свойство С, а value - не соответствует типу свойства attr.
Понятное дело, C# этого не может. Система типов слишком убога. А вот TypeScript...
Такого с конструтором тоже не может. Но вполне может с фабричным методом.
Собственно, TypeScript надо сравнивать не с C#. Я им регулярно и вполне успешно троллю хаскелистов :).
Впрочем, как это не может с конструктором. Может.
@Wrouds лови решение ;)


Alex
24.04.2018
05:03:54
Спс, я смотрел примерно в эту сторону
interface nn<A extends keyof C, B extends C[A], C>{ a: A, b:B };
type b<C> = <A extends keyof C, B extends C[A]>nn<A, B, C>;
interface m { field: string };
interface p extends b<m> {};
var a: p = { a: "field", b: 1 }

Vlad
24.04.2018
05:14:43
Мне кажется, у тебя лишнее extends. Связка keyof C и typeof a решает.
Собственно, решает "typeof a". Именно он позволяет избавиться от лишних параметров шаблона.
Ссылку на документацию привести не могу - там этого нет(я по крайней мере не видел), но это укладывается в логику языка и чудесным образом работает.

Alex
24.04.2018
05:23:31