
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