@typescript_ru

Страница 202 из 669
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
ну да то что T
generic type же

Сергей
06.04.2017
14:38:01
generic type же
да это понятно

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 {}

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

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

Сергей
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
когда можно interface Window {}
не работает так



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:47
> Либо писать нормальную декларацию, либо обращаться через квадратные скобки

Google
Aleh
06.04.2017
15:07:00
смысл юзать типы тогда
нет большого смысла покрывать типами 100% в мире джса, тем более, что это невозможно

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

Дмитрий
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
window['devToolsExtension'] ¯\_(ツ)_/¯
разве у window определен доступ через []?

Дмитрий
06.04.2017
15:11:23
сколько боли
compose плохо типизируется

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

Но так, где-то 3 по 10-балльной шкале

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

Сергей
06.04.2017
15:12:21
compose плохо типизируется
собственно, когда я спрашиваю нахуя юзать в реакте тс, мне ничего толкового не говорят

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 жи

а, ок

Сергей
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
да ну Где это
http://eslint.org/docs/rules/require-jsdoc

как вариант)

Сергей
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
разумеется

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

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