
Max
04.07.2017
16:10:13
но вообще если будет надо где-то еще дергать то перепишу на recompose

Dreamerinnoise
04.07.2017
17:13:31
hoc на hoce hocom погоняет

Артемий
04.07.2017
19:03:49
mobx-state-tree еще збс типы выводит для всех моделей

Artur
04.07.2017
19:35:29

Google

Артемий
04.07.2017
19:45:07
для моделей/сторов/бизнес логики идеален. обмазать rxjs для событийных сайд эффектов+обычный mobx для мелких локальных состояний

Defiancefew
04.07.2017
19:47:34
привет, есть абстракция типа
export abstract class Slider<P extends ISliderProps, S extends ISliderState> extends Component<P,S>
предположим в ISliderProps есть поле min: number, но тс его не определяет и пишет в операциях, что min должен быть числом. как это исправить?

Aleh
04.07.2017
19:48:32
что значит не определяет?

Defiancefew
04.07.2017
19:49:42
ну предположим я создаю метод в классе где оперирую this.props.min и тс выводит ошибку
The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type
фиксится добавлением плюса перед переменной например 5 + +min
но почему такое поведение не пойму

Даниил
05.07.2017
00:02:41
блин
в TS нет nominal subtyping для интерфейсов
в Flow нельзя использовать computed properties для интерфейсов
жизнь - боль ?
ну типа чтоб как в fantasy land
interface Node {
['castle-core/compile'](context: Context): string;
}
в идеале конечно вообще Symbol в computed property запихнуть, но такое и TS не умеет (пока?)

Дмитрий
05.07.2017
01:45:43
Но я пробовал это всё корректно затипизировать — жесть полнейшая. ts пока точно не готов типизировать такое в полной мере %)
Только с допущениями

andretshurotshka?❄️кде
05.07.2017
06:15:15
?

Google

andretshurotshka?❄️кде
05.07.2017
06:15:43
>ts пока точно не готов типизировать
%)

Gleb
05.07.2017
07:17:38
Привет, могу ли безболезненно начать писать новые фичи на TS в уже существующем и довльно большом JS проекте?

andretshurotshka?❄️кде
05.07.2017
07:24:02
Нет
там все равно начнется дичь

Gleb
05.07.2017
07:29:55
И правильно ли я понимаю мне нужно все JS в TS переименовать?
С flow история по проще?

andretshurotshka?❄️кде
05.07.2017
07:30:15
Не
В тс есть allowJs

Max
05.07.2017
07:30:20
можешь на .js повесить обработчик

andretshurotshka?❄️кде
05.07.2017
07:30:21
Но он плохой

Gleb
05.07.2017
07:31:10
Ну у меня главный файл то JS , получается что TS будет подключаться в js
а не наоборот

andretshurotshka?❄️кде
05.07.2017
07:31:43

Max
05.07.2017
07:31:55
и что
у меня index.js

Gleb
05.07.2017
07:36:47
попробую сейчас, спасибо)

Даниил
05.07.2017
08:52:41

Gleb
05.07.2017
09:42:23
Такс вроде все гуд, немного rx на тему промисов в ts дошаманил, осталось только jest починить
как кстати jest на js совместно с ts настроить

Aleh
05.07.2017
10:05:19

Google

Aleh
05.07.2017
10:05:24
Ну либо any

Andrew
05.07.2017
10:09:49

Aleh
05.07.2017
10:10:18

Andrew
05.07.2017
10:10:38

Gleb
05.07.2017
10:14:03
А я хочу redux-observable для начала, в том суть что только сам TS пока импортится будет а не в него)
Скиньте пожалуйтса как jest настроить только на совметсное использование ts и js

Дмитрий
05.07.2017
10:49:31

andretshurotshka?❄️кде
05.07.2017
11:02:37
https://github.com/lozinsky/typescript-babel-jest

Max
05.07.2017
13:18:30
парни
как быть в такой ситуаци
export interface Document {
id: PK
documentSetId: PK
name: string
template?: AcroformTemplate
triggerRule: any
index: number | null
}
вот у меня template есть в 99.99% случаев
и оооочень редко его нет

Aleh
05.07.2017
13:19:10
сделай два разных типа

Max
05.07.2017
13:19:15
писать document.template!.url заебывает

Aleh
05.07.2017
13:19:16
в котором есть и в котором нет

Max
05.07.2017
13:19:35
хм

Летучая
05.07.2017
13:19:48
export interface TemplatedDocument extends Document {
// stuff
}

Max
05.07.2017
13:20:16
да скорее NewDocument в котором нет темплейта еще

Aleh
05.07.2017
13:20:18
export type Document = DocumentWithTemplate | DocumentWithoutTemplate
и раздели функции, которые работают только с template и с любым

Max
05.07.2017
13:20:34

Google

Max
05.07.2017
13:20:45
что-то поехало все

Летучая
05.07.2017
13:20:53
Кстати, а так законно писать:
index: number | null
?

Aleh
05.07.2017
13:21:03
да

Летучая
05.07.2017
13:21:37
В каких случаях это может пригодиться (вместо index?: number)?

Max
05.07.2017
13:21:53
разница в том что nul!==undefined

Aleh
05.07.2017
13:21:53
null и undefined разные ж штуки)

Max
05.07.2017
13:22:06
и если я проебу где-то индекс то оно ошибку покажет

Admin
ERROR: S client not available

Max
05.07.2017
13:22:11
и мне надо явно указать что он null
export interface Dict<T={}> {
[propName: string]: T
}
export type PK = string | number;
кстати у кого что есть еще часто используемого?

Летучая
05.07.2017
13:23:29
Спасибо!

Max
05.07.2017
13:23:44
эээ
ну undefined это значит я забыл указать индекс явно

Летучая
05.07.2017
13:24:27
Но ведь можно чекать на undefined вместо чека на нулл?

Max
05.07.2017
13:24:37
ты не понимаешь
“забыл” это ошибка программиста
так же как “подставил string вместо number"

Google

Max
05.07.2017
13:25:09
чекать можно везде
но нахера тогда TS? :)
c undefined у тебя нет контракта на то что index должен быть указан
если тебя это устраивает то можешь index?: number юзать
но в данном случае я хочу чтобы индекс был всегда явно указан

Летучая
05.07.2017
13:26:24
я просто из шарпа, сложно осознать разницу между "ничего" и "ничего не определено")

Max
05.07.2017
13:26:48
да без проблем )

andretshurotshka?❄️кде
06.07.2017
05:31:00
>deleted account

Gleb
06.07.2017
07:54:07
Привет, вчера спрашивал про то как мигрировать с js на ts, дело дошло до @types и кажется ему куда то нужно указать на их, иба у меня в коносли
Module not found: Error: Can't resolve '@types/react-dom'
Подскажите пожалуйста как зарезолвить

Aleh
06.07.2017
07:55:27
import { render } from "react-dom"

Andrew
06.07.2017
07:56:17
Жесть, @types это какой-то экстремистский канал в телеграме на арабском

Gleb
06.07.2017
07:56:56
Стоп так разве они отдельно не ставятся?

Aleh
06.07.2017
07:57:02
Импортировать их не надо

Gleb
06.07.2017
07:57:19
А так я их отдельно и не импортировал

Aleh
06.07.2017
07:57:32
Версия ts какая?

Gleb
06.07.2017
07:58:09
Взял 2.3.4, т.к не хотел возиться с Rx, там на latest какие то ошибки сразу

Aleh
06.07.2017
07:58:39
Хз, попробуй 2.2