
Vladimir
10.07.2017
15:00:02
для мэпа

Сергей
10.07.2017
15:00:31
а
заменить бы в reducers типе [key: string]
на [key: keyof T] и возможно заработает

Max
10.07.2017
15:01:26
эээ

Google


Artur
10.07.2017
15:01:27
http://www.typescriptlang.org/play/index.html#src=interface%20Action%3CT%2C%20P%3E%20%7B%0D%0A%20%20type%3A%20string%0D%0A%20%20payload%3A%20P%0D%0A%7D%0D%0A%0D%0Atype%20Reducer%3CS%2C%20T%2C%20A%3E%20%3D%20(state%3A%20S%2C%20action%3A%20Action%3CT%2C%20A%3E)%20%3D%3E%20S%0D%0A%0D%0Afunction%20createReducer%3CS%2CT%3E(initial%3A%20S%2C%20reducers%3A%20%7B%20%5Bkey%3A%20string%5D%3A%20Reducer%3CS%2C%20keyof%20T%2C%20T%3E%20%7D)%3A%20(state%3A%20S%2C%20action%3A%20Action%3Ckeyof%20T%2C%20T%3E)%20%3D%3E%20S%20%7B%0D%0A%20%20return%20(state%2C%20action)%20%3D%3E%20%7B%0D%0A%20%20%20%20const%20handler%20%3D%20reducers%5Baction.type%5D%0D%0A%0D%0A%20%20%20%20return%20handler%20%3F%20handler(state%2C%20action)%20%3A%20state%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Ainterface%20ActionTypes%20%7B%0D%0A%20%20foo%3A%20string%2C%0D%0A%20%20bar%3A%20number%2C%0D%0A%7D%0D%0A%0D%0Aconst%20initialState%20%3D%20%7B%7D%0D%0A%0D%0AcreateReducer%3Ctypeof%20initialState%2C%20ActionTypes%3E(initialState%2C%20%7B%0D%0A%20%20foo(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20string%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%2C%0D%0A%20%20bar(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20number%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%0D%0A%7D)#src=interface%20Action%3CT%2C%20P%3E%20%7B%0D%0A%20%20type%3A%20string%0D%0A%20%20payload%3A%20P%0D%0A%7D%0D%0A%0D%0Atype%20Reducer%3CS%2C%20T%2C%20A%3E%20%3D%20(state%3A%20S%2C%20action%3A%20Action%3CT%2C%20A%3E)%20%3D%3E%20S%0D%0A%0D%0Afunction%20createReducer%3CS%2CT%3E(initial%3A%20S%2C%20reducers%3A%20%7B%20%5BP%20in%20keyof%20T%5D%3A%20Reducer%3CS%2C%20P%2C%20T%3E%20%7D)%3A%20(state%3A%20S%2C%20action%3A%20Action%3Ckeyof%20T%2C%20T%3E)%20%3D%3E%20S%20%7B%0D%0A%20%20return%20(state%2C%20action)%20%3D%3E%20%7B%0D%0A%20%20%20%20const%20handler%20%3D%20reducers%5Baction.type%5D%0D%0A%0D%0A%20%20%20%20return%20handler%20%3F%20handler(state%2C%20action)%20%3A%20state%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Ainterface%20ActionTypes%20%7B%0D%0A%20%20foo%3A%20string%2C%0D%0A%20%20bar%3A%20number%2C%0D%0A%7D%0D%0A%0D%0Aconst%20initialState%20%3D%20%7B%7D%0D%0A%0D%0AcreateReducer%3Ctypeof%20initialState%2C%20ActionTypes%3E(initialState%2C%20%7B%0D%0A%20%20foo(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20string%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%2C%0D%0A%20%20bar(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20number%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%0D%0A%7D) - так?


Max
10.07.2017
15:01:27
что?


Artur
10.07.2017
15:01:44

Max
10.07.2017
15:01:47
:)

Сергей
10.07.2017
15:02:30
не совсем
по идее там должно быть .toUpperCase()
методы строки


Artur
10.07.2017
15:03:51
А не с пейлоадом

Сергей
10.07.2017
15:04:32
а он там foo bar отображает

Artur
10.07.2017
15:05:54
То есть он должен залезть в пейлоад и взять оттуда ключ?

Google


Сергей
10.07.2017
15:05:59
http://www.typescriptlang.org/play/index.html#src=interface%20Action%3CT%2C%20P%3E%20%7B%0D%0A%20%20type%3A%20string%0D%0A%20%20payload%3A%20P%0D%0A%7D%0D%0A%0D%0Atype%20Reducer%3CS%2C%20T%2C%20A%3E%20%3D%20(state%3A%20S%2C%20action%3A%20Action%3CT%2C%20A%3E)%20%3D%3E%20S%0D%0A%0D%0Afunction%20createReducer%3CS%2C%20T%20extends%20%7B%20%5Bkey%3A%20string%5D%3A%20any%20%7D%3E(initial%3A%20S%2C%20reducers%3A%20%7B%20%5BP%20in%20keyof%20T%5D%3A%20Reducer%3CS%2C%20P%2C%20T%5Bkeyof%20T%5D%3E%20%7D)%3A%20(state%3A%20S%2C%20action%3A%20Action%3Ckeyof%20T%2C%20T%5Bkeyof%20T%5D%3E)%20%3D%3E%20S%20%7B%0D%0A%20%20return%20(state%2C%20action)%20%3D%3E%20%7B%0D%0A%20%20%20%20const%20handler%20%3D%20reducers%5Baction.type%5D%0D%0A%0D%0A%20%20%20%20return%20handler%20%3F%20handler(state%2C%20action)%20%3A%20state%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Ainterface%20ActionTypes%20%7B%0D%0A%20%20foo%3A%20string%2C%0D%0A%20%20bar%3A%20number%2C%0D%0A%7D%0D%0A%0D%0Aconst%20initialState%20%3D%20%7B%7D%0D%0A%0D%0AcreateReducer%3Ctypeof%20initialState%2C%20ActionTypes%3E(initialState%2C%20%7B%0D%0A%20%20foo(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20string%0D%0A%20%20%20%20const%20d%20%3D%20action.payload%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%2C%0D%0A%20%20bar(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20number%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%0D%0A%7D)


Дмитрий
10.07.2017
15:06:47
Опять redux не типизируется ?

Artur
10.07.2017
15:06:53
return (state, action) => {
const handler = reducers[action.type]
return handler ? handler(state, action) : state
}
Он берёт экшен и пихает его в хэндлер, а экшен - объект с type, payload и так далее


Сергей
10.07.2017
15:07:20
ееее
http://www.typescriptlang.org/play/index.html#src=interface%20Action%3CT%2C%20P%3E%20%7B%0D%0A%20%20type%3A%20string%0D%0A%20%20payload%3A%20P%0D%0A%7D%0D%0A%0D%0Atype%20Reducer%3CS%2C%20T%2C%20A%3E%20%3D%20(state%3A%20S%2C%20action%3A%20Action%3CT%2C%20A%3E)%20%3D%3E%20S%0D%0A%0D%0Afunction%20createReducer%3CS%2C%20T%20extends%20%7B%20%5Bkey%3A%20string%5D%3A%20any%20%7D%3E(initial%3A%20S%2C%20reducers%3A%20%7B%20%5BP%20in%20keyof%20T%5D%3A%20Reducer%3CS%2C%20P%2C%20T%5BP%5D%3E%20%7D)%3A%20(state%3A%20S%2C%20action%3A%20Action%3Ckeyof%20T%2C%20T%5Bkeyof%20T%5D%3E)%20%3D%3E%20S%20%7B%0D%0A%20%20return%20(state%2C%20action)%20%3D%3E%20%7B%0D%0A%20%20%20%20const%20handler%20%3D%20reducers%5Baction.type%5D%0D%0A%0D%0A%20%20%20%20return%20handler%20%3F%20handler(state%2C%20action)%20%3A%20state%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Ainterface%20ActionTypes%20%7B%0D%0A%20%20foo%3A%20string%2C%0D%0A%20%20bar%3A%20number%2C%0D%0A%7D%0D%0A%0D%0Aconst%20initialState%20%3D%20%7B%7D%0D%0A%0D%0AcreateReducer%3Ctypeof%20initialState%2C%20ActionTypes%3E(initialState%2C%20%7B%0D%0A%20%20foo(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20string%0D%0A%20%20%20%20const%20d%20%3D%20action.payload%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%2C%0D%0A%20%20bar(state%2C%20action)%20%7B%0D%0A%20%20%20%20%2F%2F%20action%20should%20be%20number%0D%0A%20%20%20%20return%20state%0D%0A%20%20%7D%0D%0A%7D)
Всем огромное спасибо!


Artur
10.07.2017
15:12:05
Кстати а вот так должна же быть ошибка, а её нет:
reducer(initialState, {
type: "foo",
payload: 321
})
Так что типизация не до конца )

Сергей
10.07.2017
15:12:21

Artur
10.07.2017
15:12:35
и если ты обратишься в редьюсере к методам строки то получишь рантайм еррор

Сергей
10.07.2017
15:13:18
ты имеешь ввиду
const reducer = createReducer ?

Artur
10.07.2017
15:13:44

Сергей
10.07.2017
15:14:08
тут уже пофиг
все равно там combineReducers
там молотилово
в экшенах типы норм

Google

Artur
10.07.2017
15:14:34
Я это к тому, что я бы сделал по типу на экшен с фиксацией type
Но, как знаешь конечно

Сергей
10.07.2017
15:15:00

Artur
10.07.2017
15:15:01
Редукс вообще сложно на 100% типизировать
не совсем понял
Ну типа
interface FooAction {
type: "foo",
payload: string
}

Сергей
10.07.2017
15:15:21
мне главное, чтобы можно было типизировать вот такие редюсеры

Дмитрий
10.07.2017
15:34:13

Сергей
10.07.2017
15:34:45
есть там mapped types?

Дмитрий
10.07.2017
15:36:04
а во flow как с этим делом?
Ну ты же из-за этого и ливнул? ?
Зарелизят в нпм 50 версию, посмотрим что поменяется с $Values, opaque types и $ElementType
При полной реализации всего этого добра должно типизироваться на ура

Дмитрий
10.07.2017
15:38:14
Make flow great again

andretshurotshka?❄️кде
10.07.2017
15:48:13


Vladimir
10.07.2017
15:50:53

Артемий
10.07.2017
16:01:51

Vladimir
10.07.2017
16:03:24

Артемий
10.07.2017
16:11:30
https://youtu.be/rwqwwn_46kA
сравнение с redux

Nikolay
10.07.2017
20:25:11
Парни, есть большой класс Api в котором дохрилион методов для работы с rest api, есть куда поглядеть чтобы все это разделить? Пока что на ум лезет побить на группы классов специфичные для конкретных частей rest api.

Google

Сергей
10.07.2017
20:25:28

Andrey
10.07.2017
22:51:03

Nikolay
10.07.2017
22:51:22
там на бэке руби
и меня вообще не должно волновать что там на бэке )
есть эндпоинты /api/user, /api/post, /api/whatever которые все запиханы в один класс

Andrey
10.07.2017
22:53:35
Тогда только по собственному пониманию bounded context'ов, угу

Friedrich
11.07.2017
07:13:33
Чуваки, а namespace в тайпскрипте же deprecated? В новом коде не нужно его использовать?
Или можно как-то дружить неймспейсы и модули?

Admin
ERROR: S client not available

Friedrich
11.07.2017
07:14:06
Мы тут мигрируем легаси с неймспейсами на вебпак, и уже пару часов вообще не можем понять, что там происходит и как оно работает %)

Valeriy
11.07.2017
07:30:19
? кто ещё может помочь — плизз, присоединяйтесь.

Bohdan
11.07.2017
07:32:48
typeorm удаляет его, если его не джоинили

Valeriy
11.07.2017
07:32:59
Вот почему?
Мне нужен простой select по всем столбцам таблицы, а TypeORM этого не дает сделать?
Это ж странно как-то)

Bohdan
11.07.2017
07:34:00
Фиг знает почему)

Valeriy
11.07.2017
07:34:29
Ведь джойнить целую другую таблицу дороже
Вот из-за этого сейчас смотрю в сторону sequelize

Bohdan
11.07.2017
07:35:06
джоинит один элемент только

Google

Bohdan
11.07.2017
07:35:12
на который id указывает

Valeriy
11.07.2017
07:35:23
или не?
Я не понял ответ автора проекта.
На мой вопрос в issue

Bohdan
11.07.2017
07:37:22
ну да, всю строку на которую foreight id указывает
непонятно, что мешает возвращать id, если на него не указывает innerJoin или leftJoin с его ответа)
Он говорит как обойти в текущей версии это, но не говорит причин

Aleh
11.07.2017
08:08:43

Friedrich
11.07.2017
08:09:18

Aleh
11.07.2017
08:09:42

Friedrich
11.07.2017
08:10:00
Бже, есть и такое? Я совсем отстал от жизни, похоже.

Сергей
11.07.2017
08:10:07

Aleh
11.07.2017
08:10:14
Еще не влит

Friedrich
11.07.2017
08:10:23
Но собираются вливать?

Сергей
11.07.2017
08:10:25
Хоть теперь не надо будет юзать два компилера

Max
11.07.2017
08:10:28
так

Aleh
11.07.2017
08:10:34
Но и поддерживать не будет

Max
11.07.2017
08:10:34
а кто prettier юзает?

Aleh
11.07.2017
08:10:39
Я

Max
11.07.2017
08:10:48
чот запустил он какую-то херню выдает :/