@typescript_ru

Страница 584 из 669
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
пробовал, а в чем вопрос?
использовал, smartsystem? или еще что?

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 подхватил сразу?

Леха
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

Alik
22.04.2018
13:01:01
Я понимаю, что надо в package.json указать "types": "./lib/main.d.ts" и будет работать?
нашел еще в проекте, папку с кучей *.d.ts файлов, но они нигде не подрубаются. возможно, они сами

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

Антон
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

Google
Aleh
22.04.2018
14:36:22
eslint-plugin-typescript
Он сырой, собственно что вы и видите)

Антон
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 и какие подводные камни ожидать?

Andrey
23.04.2018
04:34:11
Всем привет. У меня вопрос, есть ли смысл пытаться писать большое react/native приложение на TypeScript'e и какие подводные камни ожидать?
я вот начал, только nativescript + angular, долго грузиться, очень долго для запуска в дев режиме, как для прода тоже а мне все равно нужно писать и я решил что буду на чистом typescript + nativescript если у вас есть шанс писать на kotlin/java то пишите, есть еще dart flutter для больших приложений которые еще будут в дальнейшем дорабатыватся

Александр
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, ... }

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
Типа есть класс class Some<A extends keyof C, B extends C[A], C> { b: B; a: A; constructor (a: A, b: B) } Мне нужно оставить только C generic
Господи, такое впечатление, что зашпл в чат по скале ??? И зачем вам такие конструкции?

Чет не уверен что один женерик может от другого наследоватся

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

Google
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". Именно он позволяет избавиться от лишних параметров шаблона.

Ссылку на документацию привести не могу - там этого нет(я по крайней мере не видел), но это укладывается в логику языка и чудесным образом работает.

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