@typescript_ru

Страница 502 из 669
Кирилл
15.02.2018
10:52:26
Observabel появлется не явно вот так extendObservable(this, this.defaults); и mobx не имет в посвки жинерика в котрый можно кинуть тип и он вернет нужный тип Observabel обекта

на скрине то как хочу сделать

Andrey
15.02.2018
11:45:26
По-моему мы друг друга не понимаем, и я убеждён, что вы делаете что-то не так. Если вызвать extendObservable на объекте типа interface IMultiWalletData { walletData: number[]; walletStatus: string; transactionsData: number[]; transactionsStatus: string; } , то результирующим объектом можно пользоваться как объектом типа IMultiWalletData. Вы не получаете ничего полезного от явного указания в типе IObservableValue<string> для поля walletStatus, им можно и нужно пользоваться как полем типа string. Если я неправ, то жду контрпример, который, как я почти уверен, можно будет переписать лучше.

Mike
15.02.2018
12:54:21
спасибо всем кто лайкал, посмотрим что ms скажет

Google
kana
15.02.2018
12:57:11
Такого сигма-типа нет? (p: string) => (obj: { [p]: number })

да, вроде нет

но можно сделать наоборот, зависимость p от ключей obj

но нужно еще завязать его на строку, нужно типа $Property<Obj, K> extends string

Morsik
15.02.2018
13:04:56


kana
15.02.2018
13:06:23
у меня объект, где поля имеют разные типы, нужен лишь пруф, что какое-то поле имеет есть в объекте и имеет конктреный тип

или Record это и деЛает?

Morsik
15.02.2018
13:08:15
Record<поля (extends string), типы полей>

kana
15.02.2018
13:12:42


спасибо

extends keyof выглядит избыточным

Morsik
15.02.2018
13:20:28
extends keyof выглядит избыточным
я тебе наверно слишком оверкильный способ предложил, посмотри на Pick

Google
Oleg
15.02.2018
13:24:54
Коллеги, юзаю некоторые так называемые utility types, насколько это хорошая практика, и добавляет ли TS нвоые вспомогательные типы в обновлениях?



Omit для компонентов - адаптеров просто замечателен, но сам бы я его точно не написал

andretshurotshka?❄️кде
15.02.2018
13:30:23
в 2.8 будет omit

Andrey
15.02.2018
13:32:00
всетаки мы храним Observabal и у него немного другое апи и иногда приходится вызывать toJS и в у них есть свои методы типо this.walletData.replace(result);
Зачем использовать replace, если наблюдаемым (при описании через декораторы, к примеру) является само свойство объекта, и массив можно очевидным способом переприсвоить? Аналогичный вопрос про toJS — у меня есть большое подозрение, что вы неправильно готовите mobx и пытаетесь решить, в итоге, не ту проблему.

Andrey
15.02.2018
13:35:33
В опенсурсе у меня, к сожалению, ничего нет, но концептуально могу рассказать — мы, например, размечаем объекты декораторами, а вместо extendObservable для производства наблюдаемых используем serialzr

Кирилл
15.02.2018
13:42:54
у нас есть еще требования чтобы любой стор сбрасывался к началным настройкам через метод rest() поэтому испозуем extendObservable это нужно чтобы при логауте на клинте не осталось платежных данных или еще чегонибуть

впринцепе можно еще одни декоратор написать или на момент инициализации просто собирать все ключи и забивать их вдефолт

Vlad
15.02.2018
14:55:32
Привет. У меня вопрос по поводу typescript + jest + knex + ts-jest. Я правильно понимаю что такое нельзя сделать потому ts-jest не умеет траспайлить namespace. А если можно то подскажите пожалуйста. Заранее спасибо)

Kirill
15.02.2018
14:56:28
В новом релизе подвезут ReturnType. А как мне вернуть тип сигнатуры агрументов функции, чтобы сложить тип функции из нескольких функций?

andretshurotshka?❄️кде
15.02.2018
14:56:52
никак)

Kirill
15.02.2018
14:57:29
никак)
Ну и ладно, значит решу задачу другим способом.)

Morsik
15.02.2018
14:57:30
f1 | f2 | f3?

andretshurotshka?❄️кде
15.02.2018
14:57:51
вообще можно

но там декларация такая же как у каррирования будет

на каждый аргумент

10 раз

Google
kana
15.02.2018
14:59:10
попробовал я писать на тайпскрипте типзированный код

andretshurotshka?❄️кде
15.02.2018
14:59:10
export type Arguments<T extends (...args: any[]) => any> = T extends () => any ? never[] : T extends (a: infer A) => any ? [A] : T extends (a: infer A, b: infer B) => any ? [A, B] : T extends (a: infer A, b: infer B, c: infer C) => any ? [A, B, C] : T extends (a: infer A, b: infer B, c: infer C, d: infer D) => any ? [A, B, C, D] : T extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E) => any ? [A, B, C, D, E] : T extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E, f: infer F) => any ? [A, B, C, D, E, F] : T extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E, f: infer F, g: infer G) => any ? [A, B, C, D, E, F, G] : T extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E, f: infer F, g: infer G, h: infer H) => any ? [A, B, C, D, E, F, G, H] : T extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E, f: infer F, g: infer G, h: infer H, i: infer I) => any ? [A, B, C, D, E, F, G, H, I] : T extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E, f: infer F, g: infer G, h: infer H, i: infer I, j: infer J) => any ? [A, B, C, D, E, F, G, H, I, J] : never[];

kana
15.02.2018
14:59:13
все в дженериках

в селекторах особенно радует

селекторы которые все в Record/Pick

Andrey
15.02.2018
15:00:07
ужас

andretshurotshka?❄️кде
15.02.2018
15:01:34
https://github.com/tycho01/typical/blob/master/src/function.ts

andretshurotshka?❄️кде
15.02.2018
15:03:08
никогда?)

Вячеслав
15.02.2018
15:03:23
вроде напрашивается уже

andretshurotshka?❄️кде
15.02.2018
15:04:11
это variadic kinds

и этот issue висит уже несколько лет

https://github.com/Microsoft/TypeScript/issues/5453

https://github.com/Microsoft/TypeScript/pull/17884

Дмитрий
15.02.2018
15:30:04
Аргументы это ещё и контравариантность

Max
15.02.2018
16:11:50
Ребята, как задекорировать приватный метод-свойство в TS? import { Partial } from 'lodash-decorators'; @Partial() private handleFoo = (index: number) => { // .. code .. }

выдаёт ошибку Uncaught TypeError: Cannot assign to read only property

разрулил. это же стрелка, её нельзя декорировать нужно метод каррировать на +1 арность, и дополнительно декорировать биндом @Curry(2) @Bind() private handleFoo (index: number) { // … coee ... }

D
15.02.2018
16:31:39
Зачем декораторы для такого?

kana
15.02.2018
16:34:06
Шоб как в джаве же

Google
Max
15.02.2018
17:22:52
один из способов мемоизировать handler’ы в react

D
15.02.2018
17:34:38
>Зачем декораторы для такого? >один из способов мемоизировать handler’ы в react Ват

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