
Aleh
06.04.2017
14:36:06
(у нас)

Сергей
06.04.2017
14:36:44
ну да
то что T
я в store/configure.ts заебенил такую штуку

Google

Aleh
06.04.2017
14:37:16
export type State = {
ui: UiState;
domain: DomainState;
routing: {
locationBeforeTransitions: {
pathname: string;
};
};
}

Сергей
06.04.2017
14:37:16
это слишком?

Dreamerinnoise
06.04.2017
14:37:54

Сергей
06.04.2017
14:38:01

Dreamerinnoise
06.04.2017
14:38:06
чат не читай @ сразу отвечай

Aleh
06.04.2017
14:38:34
я всю ерунду, что есть в Window помимо стандартной в корне src
храню

Сергей
06.04.2017
14:38:50

Aleh
06.04.2017
14:38:53
да

Сергей
06.04.2017
14:39:25
спасибо

Aleh
06.04.2017
14:40:25
и сами редьюсеры как function reducer(state: State = defaultState, action: Action): State

Сергей
06.04.2017
14:44:21
а экшены тоже типизированные?!

Aleh
06.04.2017
14:44:31
у нас да

Google

Сергей
06.04.2017
14:44:54
как выглядит тогда этот Action?
там все возможные варианты данных или payload: object?

Aleh
06.04.2017
14:45:19
type Action = UserAdded | UserRemoved | UserBaned

Сергей
06.04.2017
14:45:45
а, окей
харкдор

Aleh
06.04.2017
14:46:09
type UserAdded = {
type: "UserAdded"
payload: {
id: number
}
}

Сергей
06.04.2017
14:46:30
какое-же это дублирование кода, всё таки

Aleh
06.04.2017
14:46:56
хз, сниппеты и функции обертки решают проблему

andretshurotshka?❄️кде
06.04.2017
14:51:46
а зачем экстендить
когда можно interface Window {}

Aleh
06.04.2017
14:51:58

andretshurotshka?❄️кде
06.04.2017
14:52:01
и он должен смержить декларации

Aleh
06.04.2017
14:52:08
да, только подключить надо не забыть)

Дмитрий
06.04.2017
14:54:45

Сергей
06.04.2017
14:57:50
а зачем экстендить
хрен знает, не завелось по другому. Он мне перетирал все остальные свойства window

Дмитрий
06.04.2017
14:59:29
Так TS ни на что не жалуется
Как по мне, смысла в декларации (data: any) => any нуль

Сергей
06.04.2017
15:00:16
и что тогда писать там

Aleh
06.04.2017
15:00:17
ну это если noImplicitAny не стоит

Дмитрий
06.04.2017
15:00:17
Либо писать нормальную декларацию, либо обращаться через квадратные скобки, если это оправдано

Google

Дмитрий
06.04.2017
15:00:52
Особенно, если стоит

Сергей
06.04.2017
15:00:59

andretshurotshka?❄️кде
06.04.2017
15:02:29
ну такое вроде только в .d.ts катит

Aleh
06.04.2017
15:02:48
да, оно должно быть в глобальном скоупе

Сергей
06.04.2017
15:02:56
блядство
идти пилить кастомный .d.ts?

Aleh
06.04.2017
15:03:46
ну как кастомный, положи в корень Window.d.ts, туда этот интерфейс и в tsconfig.json укажи его

Сергей
06.04.2017
15:04:30

Дмитрий
06.04.2017
15:04:37
усложнение ради ничего

Сергей
06.04.2017
15:04:51
здесь в компании хотят нормальные типы
без тонны any

Дмитрий
06.04.2017
15:05:29
И чем Function лучше?

Aleh
06.04.2017
15:05:37
не вижу проблем с any никаких)

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

Дмитрий
06.04.2017
15:06:09
А где у тебя тут типы вообще? У тебя интерфейс ради интерфейса, только чтобы TS не ругался

Сергей
06.04.2017
15:06:25

Дмитрий
06.04.2017
15:06:47
> Либо писать нормальную декларацию, либо обращаться через квадратные скобки

Google

Сергей
06.04.2017
15:06:58

Aleh
06.04.2017
15:07:00

Дмитрий
06.04.2017
15:07:22

Aleh
06.04.2017
15:07:58

Дмитрий
06.04.2017
15:08:17
Ну по идее у devToolsExtension должен быть такой же интерфейс, как у compose из redux

Сергей
06.04.2017
15:08:44

Дмитрий
06.04.2017
15:09:16
Что значит конкретнее?) Их столько и есть.
15, да

Сергей
06.04.2017
15:09:34
блядский тс
сколько боли

Admin
ERROR: S client not available

Дмитрий
06.04.2017
15:10:05
Это вообще не боль еще

Aleh
06.04.2017
15:11:08

Дмитрий
06.04.2017
15:11:23

Дмитрий
06.04.2017
15:11:27
Вот когда коннект начинается, да еще и по полной программе - не только mapStateToProps, но и с диспатчем, и mergeProps, вот тогда начинается боль
Но так, где-то 3 по 10-балльной шкале

Aleh
06.04.2017
15:11:58
сомнительна идея типизировать такие динамичные вещи)

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

Aleh
06.04.2017
15:12:29
аргументы на входе типизирвоаны, на выходе типизированы, внутри пускай какая угодно магия творится

Google

Дмитрий
06.04.2017
15:12:56

Aleh
06.04.2017
15:13:07
чет не вижу, надо тестануть

Дмитрий
06.04.2017
15:13:13
https://www.typescriptlang.org/play/#src=window%5B'__REDUX_DEVTOOLS_EXTENSION_COMPOSE__'%5D()%3B%0A

Сергей
06.04.2017
15:13:38

Дмитрий
06.04.2017
15:14:02
Тот случай, когда запятые важны
ну дык это с noImplicitAny жи
а, ок

Aleh
06.04.2017
15:14:56

Сергей
06.04.2017
15:15:05

Дмитрий
06.04.2017
15:15:12
тогда остается только копипастнуть тип compose из redux'a =)

Сергей
06.04.2017
15:15:36
отличный подход, чё

Дмитрий
06.04.2017
15:15:41
как вариант)

Сергей
06.04.2017
15:15:55
о
не видел этого
а не, видел
но тут просто
а не когда приходится изъебываться

Дмитрий
06.04.2017
15:16:19
jsDoc хуже в этом плане работает, много ограничений

Vladimir
06.04.2017
15:16:24
В чем проблема то? Не нравится ТС - не используй

Дмитрий
06.04.2017
15:16:26
разумеется

Сергей
06.04.2017
15:16:32

Dreamerinnoise
06.04.2017
15:16:40
Юзай флоу, он четкий