Denis
17.02.2018
23:48:29
kana
17.02.2018
23:49:38
это просто модуль с готовым коннектом и хелпером для комбинирования редьюсерв
их и так придется пистаь
Google
Дмитрий
17.02.2018
23:51:01
Kelin
17.02.2018
23:51:35
Хуй знает. Я, конечно, сам не ковырял его, но со стороны это выглядит будто люди натыкают палочки вокруг говна
Denis
17.02.2018
23:52:28
andretshurotshka?❄️кде
17.02.2018
23:52:57
д е в т ул з ы
Roman
17.02.2018
23:53:17
почитай
нихуя не понятно сходу
kana
17.02.2018
23:53:24
как во флоу описать какой-то объект с КОНКРЕТНЫМ числом ключей, но неизвестный нам пока
и чтобы все ключи имели один тип
Дмитрий
17.02.2018
23:53:43
kana
17.02.2018
23:54:05
то есть как { [key: string]: T }, только список ключей константен (но пока неизвестен, это констрейнт для генерика)
andretshurotshka?❄️кде
17.02.2018
23:54:22
тапл?
Kelin
17.02.2018
23:54:49
Я-то сам сижу на vue, а vuex далек от фп от слова совсем
Но типа, почему-то там проблем у людей почти нет, за исключением отсутствия мидлварей, которые сука уже целый год все никак не добавят
Google
Дмитрий
17.02.2018
23:54:58
@goodmind сегодня скинул код который реально генерирует объект на тайплевеле
Denis
17.02.2018
23:55:04
kana
17.02.2018
23:55:21
окей, на вход в функцию я передаю некий объект, я хочу на выходе получить этот же объект с теми же полями. Я хочу лишь просто указать, что тип всех значений в объекте - T
andretshurotshka?❄️кде
17.02.2018
23:55:24
Den
17.02.2018
23:55:49
import { AUTH } from 'actions';
const { SEND_CODE, SIGN_IN, GET_PASSWORD, LOG_OUT } = AUTH;
import { SEND_CODE, SIGN_IN, GET_PASSWORD, LOG_OUT } from 'actions';
Нет разве?
Дмитрий
17.02.2018
23:55:59
ты серъезно?
Ты не в курсе про устройство api оконных менеджеров? Ты не убежишь от message passing
andretshurotshka?❄️кде
17.02.2018
23:56:28
Kelin
17.02.2018
23:56:43
kana
17.02.2018
23:56:49
$ObjMap
как его тут заюзать? Тип объекта я менять не собираюсь
Den
17.02.2018
23:56:53
const loading = createReducer({
[SEND_CODE.INIT]: T,
[SEND_CODE.DONE]: F,
[SEND_CODE.FAIL]: F,
[SIGN_IN.INIT]: T,
[SIGN_IN.DONE]: F,
[SIGN_IN.FAIL]: F,
[GET_PASSWORD.INIT]: T,
[GET_PASSWORD.DONE]: F,
[GET_PASSWORD.FAIL]: F,
}, false);
Это че за магия?
Denis
17.02.2018
23:56:55
Дмитрий
17.02.2018
23:57:05
andretshurotshka?❄️кде
17.02.2018
23:57:17
Дмитрий
17.02.2018
23:57:19
Den
17.02.2018
23:57:27
что нет
Не идентичны ли 2 группы выражений?
andretshurotshka?❄️кде
17.02.2018
23:57:28
Дмитрий
17.02.2018
23:57:46
WinApi с 94 года
andretshurotshka?❄️кде
17.02.2018
23:58:00
нет, там экспортится объект же
Google
Denis
17.02.2018
23:58:18
А Я ПРО ЧТО
абрамов и фейсбук спиздили идею CQRS и при том реализовали через жопу и криво
Дмитрий
17.02.2018
23:58:22
kana
17.02.2018
23:58:38
const x = {
a: 1,
b: 2,
};
function f<G, T: SomeObjectWithType<G>>(obj: T): T {
return obj;
}
const { a, b } = f<number, { a: number, n: number }>(x);
andretshurotshka?❄️кде
17.02.2018
23:58:48
???
Дмитрий
17.02.2018
23:58:49
Denis
17.02.2018
23:59:09
да и будем честными, редакс не заслуга абрамова, а базовая идея пришла кларку
kana
17.02.2018
23:59:20
в нем гарантированно будут a и b
Дмитрий
17.02.2018
23:59:38
kana
17.02.2018
23:59:56
а { [key: string]: t } вроде как забывает структуру
ObjMap
ну так окей, но объясни как его заюзать
тип-то одинаковый
имеешь в виду мапать на константный тип T?
andretshurotshka?❄️кде
18.02.2018
00:00:25
$ObjMap<Obj, () => number>
Den
18.02.2018
00:00:49
Дмитрий
18.02.2018
00:01:26
Denis
18.02.2018
00:01:40
Не cqrs а исключительно message passing
за долго до абрамова и его компании смузихлебов было это https://baconjs.github.io/api2.html#join-patterns и это есть правильное поведение реактивной стейт машины
Дмитрий
18.02.2018
00:01:57
СПОРНО
ОЧЕНЬ
Google
andretshurotshka?❄️кде
18.02.2018
00:02:11
а блин
kana
18.02.2018
00:03:09
СПОРНО
так там же про тот же joint/combine что у тебя
то есть про liftA2
andretshurotshka?❄️кде
18.02.2018
00:03:16
const x = {
a: 1,
b: 2,
};
function f<G, T: $ObjMap<*, () => G>>(obj: T, g: G): T {
return obj;
}
const { a, b } = f(x, 1);
kana
18.02.2018
00:03:21
какой-то культ аппликативов
Дмитрий
18.02.2018
00:04:19
andretshurotshka?❄️кде
18.02.2018
00:04:43
Дмитрий
18.02.2018
00:04:46
Комбайн это тривиально, join комбинирует хитрее
andretshurotshka?❄️кде
18.02.2018
00:04:48
так не работает)
или работает
хз
не
не работает
Denis
18.02.2018
00:05:37
https://gist.github.com/rattrayalex/dee40d86813bcaa9de80
Дмитрий
18.02.2018
00:06:45
Всё не то, совсем
andretshurotshka?❄️кде
18.02.2018
00:07:07
лол какая-то хрень
empty?
Дмитрий
18.02.2018
00:07:57
Для меня индикатором возможностей является способность подхода выразить transition между тремя последовательными событиями
Без костылей, возможность, которая бы вытекала из подхода как следствие
Google
Den
18.02.2018
00:09:12
Дмитрий
18.02.2018
00:09:43
В прямом. А потом B потом С
Den
18.02.2018
00:10:11
Ты про PHP что-ли?
andretshurotshka?❄️кде
18.02.2018
00:11:24
блин
Den
18.02.2018
00:11:29
Мож сегодня мой день, и я завербую одного?
kana
18.02.2018
00:11:29
как же фигово работает вскод с флоу
andretshurotshka?❄️кде
18.02.2018
00:11:29
обжмап сломали опять??
kana
18.02.2018
00:11:33
ну точнее сам флоу
тултип показывает кучу типов (выведенных) как any
при этом на самом деле флоу знает тип
Den
18.02.2018
00:11:54
kana
18.02.2018
00:11:58
но показывает any
Roman
18.02.2018
00:12:20
kana
18.02.2018
00:12:37
да я не уверен, что это поможет, данные о типе приходят же с флоу
значит он намеренно показывает any
andretshurotshka?❄️кде
18.02.2018
00:13:08
вооо
https://flow.org/try/#0MYewdgzgLgBAHjAvDA3gKBjAhgLhgRgBoMYAjPAJmIF8BuNNAEwFNgAbLAJ2ZgDMBXMMCgBLcHwA8AcTwAqQjAAqeFAG1onEWADmAXTnUAfAAoQpAFZ5FC7XikBKPABIA8hYCyWAA4TrMY-ZIhjBShgygkLCAgiBIfMZwCihsIGx4UJz8zNT2tEA
неужели
kana
18.02.2018
00:13:40