
Gordey
19.06.2016
16:45:57
да не, все правильно.
я вот как прикрутил ts к проекту, надобавлял тайпингов и сделал 1 компонент .tsx’ом - на этом у меня все и подзависло)
вернусь к этому всему позже

Vasiliy
19.06.2016
16:46:41
я думаю ты правильно сделал, тк я просираю конкретно по срокам сейчас и херачу без остановки, зато я счастлив) мне более-менее даже нравится то, что у меня получается, хотя надо кому-нибудь потом показать, может я вообще какую-то дичь тут один сижу делаю

Gordey
19.06.2016
16:51:50
> @vyorkin
может я вообще какую-то дичь тут один сижу делаю
во-во, у меня такой же страх))

Google

Gordey
19.06.2016
16:52:04
срочно нужен code review)

Ҫѐҏӗѫӑ
19.06.2016
21:20:36
https://www.youtube.com/watch?v=_iTlU6mmJ6s
еще не смотрел. говорят это для новичков

Aleh
19.06.2016
21:26:30
полистал, да, для новичков, в чем отличие таргетов, систем модулей и все такое

Ҫѐҏӗѫӑ
20.06.2016
03:01:30
следующий https://www.youtube.com/watch?v=5xMfQRld1a8

Vasiliy
20.06.2016
13:25:46
полюбому же где-то есть интерфейсы с определениями обработчиков событий
типа
onBlur?: (event: FocusEvent) => void;
onFocus?: (event: FocusEvent) => void;
чтобы не писать самому это

Artur
20.06.2016
13:32:50
node.d.ts?
lib.d.ts

Aleh
20.06.2016
13:33:25
чет не улавливаю суть запроса

Vasiliy
20.06.2016
13:33:58
ну я постоянно пишу в
interface IMyComponentProps {
onBlur?: (event: FocusEvent) => void;
onFocus?: (event: FocusEvent) => void;
onChange?: (value: string, event: Event) => void;
onClick?: (event: MouseEvent) => void;

Google

Vasiliy
20.06.2016
13:34:23
что-то типа того
я хочу просто унаследоваться от какого-то интерфейса и все
The MouseEvent interface represents events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click, dblclick, mouseup, mousedown.
например
т.е. известно на каких DOM элементах какие могут быть обработчики с какими типами событий
хочется интерфейсы, где все они собраны в одном месте, чтобы не перечислять постоянно, а унаследоваться
т.е. я думаю что-то я скорее всего делаю что-то совсем не то, врядли может быть такое, что еще никто не думал об этом
IInputEventHandlers, IButtonEventHandlers

Aleh
20.06.2016
13:43:01
@vyorkin https://github.com/Microsoft/TypeScript/blob/master/lib/lib.dom.d.ts#L3264
вот они не загоняются

Roman
20.06.2016
13:44:39

Aleh
20.06.2016
13:45:37
и то правда)

Vasiliy
20.06.2016
13:48:49
понятно, там не выделены эти интерфейсы, жаль

Artur
20.06.2016
13:51:40
А какой-нибудь DOMAttributes из react.d.ts нельзя взять?
Например

Vasiliy
20.06.2016
13:54:59
да, можно, просто не нравится, что везде все в куче
перфекционизм) но имхо не должно быть у инпута
onSeeked?: ReactEventHandler;
onSeeking?: ReactEventHandler;
:)
короче мне надо знать меру, я понял, перестаю так уже сильно загоняться

Artur
20.06.2016
14:00:51
Перестанешь загоняться, когда везде начнешь писать any :)

Google

Vasiliy
20.06.2016
14:06:25
сначала подключаем типы, а потом отключаем)

Alexander
20.06.2016
14:24:26
Gradual untyping

Artur
20.06.2016
14:26:08
?

Vasiliy
20.06.2016
23:26:51
в новом rxjs вот это просто огонь: http://reactivex.io/rxjs/manual/overview.html#choose-an-operator, это вот прям именно то, чего мне так не хватало (хотя я даже так нихрена пока не понимаю, тк слишком много всего)

Ҫѐҏӗѫӑ
20.06.2016
23:54:46
о. новые доки
давно они?)

Vasiliy
20.06.2016
23:56:31
вроде нет, они крутые, но мне даже с ними крышу немного сносит от апи, нашел для Dash доксет но для rxjs4 https://github.com/riiid/rxjs-dash, посмотрел – вроде не сложно на 5 перетащить. как закончу с работой – займусь

Aleh
21.06.2016
11:07:08
поставил vscode, чет у него все теже проблемы, что у tsu с tsserver для vim :(

Vasiliy
21.06.2016
11:16:42
т.е. возможно проблема не в tsuquyomi, наверное, это хорошо – может быть ее быстрее решат)

Aleh
21.06.2016
11:49:33
да, надеюсь)
вот вроде что-то похожее https://github.com/Microsoft/TypeScript/issues/8717

Oleg
21.06.2016
13:13:52
Кто какие правила линтинга Для реактовых проектов использует

Ҫѐҏӗѫӑ
21.06.2016
13:17:08
airbnb styleguide

Aleh
21.06.2016
13:17:11
+

Andrey
21.06.2016
13:17:24
+

Vasiliy
21.06.2016
13:17:50
+/- на разных проектах – разные, airbnb популярнее standard
может меня многие сейчас будут ругать, но вот на текущем проекте (ему 5 дней жизни) у меня такой .eslintrc

Oleg
21.06.2016
13:21:19
Я ссылку жду на tslint.json

Vasiliy
21.06.2016
13:21:31
https://gist.github.com/vyorkin/70b51cf07e80b730411af3bedacfeae9
tslint.json: https://gist.github.com/vyorkin/68a36ed674c9610bc7ed4f68a4e44409

Google

Oleg
21.06.2016
13:22:54
Конфиг tslint-react не пользуется успехом
Ощущение что ни у кого линтинга нет
А тайпскриптовый tslint.json как вам?

Vasiliy
21.06.2016
13:27:18
не понял вопрос
мне мой tslint.json? – нормально

Ҫѐҏӗѫӑ
21.06.2016
13:33:11
можно tslint eslint’ом расширять

Vasiliy
21.06.2016
13:35:01
да, вот у меня сейчас так (tslint-eslint-rules в конфиге выше)

Oleg
21.06.2016
13:35:53
https://github.com/Microsoft/TypeScript/blob/master/tslint.json

Vasiliy
21.06.2016
15:30:59
а, теперь понял, ну он минималистичен – только то, что им надо
чет я уже полчаса не могу понять что ему не нравится
const getCicularStyle = (props: IProgressProps) => {
ERROR in ./src/app/components/ui/progress/index.tsx
(48,25): error TS2354: No best common type exists among return expressions.
^ вот такая ошибка
может кто сходу знает в чем может быть проблема, я в упор не вижу ошибки (ну, кроме опечатки, но проблема не в ней :)) если убрать тип интерфейса, то это не поможет тоже
ок, проблема здесь:
const { calculateRatio, mode, buffer, value } = props;
if (mode !== ProgressModes.Indeterminate) return {}; // <<-
export interface IProgressProps {
// …
mode?: ProgressModes; // <<-
// …
}
export enum ProgressModes {
Determinate,
Indeterminate,
}
только я все равно пока не понимаю в чем дело
похоже, что так сравнивать нельзя, но как тогда?

Aleh
21.06.2016
17:05:31
может проблема в return?
не может понять какой возвращаемый тип у функции

Vasiliy
21.06.2016
17:05:46
да
да так и есть

Google

Vasiliy
21.06.2016
17:06:22
linear: (props: IProgressProps): Object => { вот так он понял
но как можно было не вывести тип в таком простом случае? вроде же возвращаю объект в 2 местах

Aleh
21.06.2016
17:06:56
нуу, если общий тип это Object, то вероятно ты мог где-то тупануть

Vasiliy
21.06.2016
17:07:11
circular: (props: IProgressProps): Object => {
const { calculateRatio, mode, value } = props;
if (mode !== ProgressModes.Indeterminate) return {};
const xScale = 2 * Math.PI * 25;
const x = xScale * calculateRatio(value);
const y = 400;
return { strokeDasharray: ${x}, ${y} };
},
^ вроде очевидно же, что у меня Object в обоих случаях

Aleh
21.06.2016
17:07:54
так блин, 99% у тебя Object
99% что у функции return это Object
редко скаляр
в таких ситуация мне кажется лучше явно писать
type Stroke = { strokeDasharray?: int[] };
ну или типа того