@typescript_ru

Страница 603 из 669
Сашка
14.05.2018
08:26:29
instanceof - лишняя операция, хотя и добавляет строгости, да.

Evgeny
14.05.2018
08:27:19
либо (<HTMLElement>element).method() гуглить в сторону защитники типов

Artur
14.05.2018
08:29:03
либо (<HTMLElement>element).method() гуглить в сторону защитники типов
первый вариант это есть as, type cast. Защитник типов (type guards) - это и есть instanceof

Google
Evgeny
14.05.2018
08:33:11
помимо instanceof можно заюзать typeof

Artur
14.05.2018
08:34:25
Evgeny
14.05.2018
08:35:27
typeof value === 'string'

Artur
14.05.2018
08:35:42
typeof value === 'string'
а с HTMLElement как?

Evgeny
14.05.2018
08:38:04
выше же предложили варианты, выбирай любой

Artur
14.05.2018
08:39:05
выше же предложили варианты, выбирай любой
конечно, я и предложил instanceof, typeof в качестве type guard можно применять только с примитивами

Evgeny
14.05.2018
08:39:50
ну я так и написал. в качестве дополнительной информации

Artur
14.05.2018
08:40:20
ну я так и написал. в качестве дополнительной информации
ну такое. для решения задачи @tusklozeleniy typeof не подойдёт.

Evgeny
14.05.2018
08:42:21
а чем не подойдет <HTMLElement> ?

Artur
14.05.2018
08:43:11
а чем не подойдет <HTMLElement> ?
подойдёт, только строгости меньше станет, а значит есть вероятность ошибки в рантайме

Evgeny
14.05.2018
08:45:27
ну если человек уверен что там будет точно HTMLElement, сам например создает в стеке выше, не все ли равно что юзать

Сашка
14.05.2018
09:37:33
Ну да, instanceof в данном случае излишняя операция, к тому же достаточно тяжелая, как я понимаю. Так что реализовал через as.

Мурад
14.05.2018
09:42:24
https://stackblitz.com/edit/angular-istzzw?embed=1&file=src/main.ts&hideExplorer=1&view=editor Посморите пожалуйста, кто хорошо шарит в event loop и task queue

Google
Yuri
14.05.2018
10:12:50
кто знает, есть в WebStorm autocompletion TypeScript’овских объектов, чтобы быстро само подставляло все поля при создании объекта заданного интерфейса?

ну то есть есть интерфейс, в нем десять полей, создаю объект. Хочется чтобы IDE вставила перечисление этих десяти ключей, а я уже писал значения .

Evgeny
14.05.2018
10:34:24
Если имплементишь в класс то поля подкидываются линтером, жмешь иконку лампочки около ошибки. если формируешь сразу объект {}, то походу не умеет

Ҫѐҏӗѫӑ
14.05.2018
14:59:30
кто-нить пробовал искать какую-нибудь генерилку тайпскрипт дефенишнов по апи нативных модулей?

Alexandr
14.05.2018
15:24:10
Приглашаю на DevConf::FrontEnd - 18 мая в эту пятницу https://devconf.ru/ru/schedule#frontend

Александр
14.05.2018
16:57:13
Доброго времени суток, господа, какой конфиг tslint посоветуете? Майкрософтовский норм?

Sergey
14.05.2018
17:29:47
Что-то там половина правил про реакт)

https://github.com/palantir/tslint/blob/master/src/configs/recommended.ts

Можно палантировский за основу взять

andretshurotshka?❄️кде
14.05.2018
17:30:21
Что-то там половина правил про реакт)
ну а че, есть жизнь без реакта?

Sergey
14.05.2018
17:30:21
Но он местами спорный

ну а че, есть жизнь без реакта?
Ну если посмотреть в мсовском ещё jquery рулы есть

andretshurotshka?❄️кде
14.05.2018
17:31:51
жизнь без жквери точно нету

Sergey
14.05.2018
17:31:53
А вот про ангулар зато ничего

Кстати из палантира

"interface-over-type-literal": true,

Проклятые слуги сотоны джависты

Kirill
14.05.2018
17:40:53
"interface-over-type-literal": true,
Надо обратное сделать.

Google
Sergey
14.05.2018
17:42:08
Надо обратное сделать.
Тут вчера это вскользь обсуждали

Так, мимоходом

Kirill
14.05.2018
17:56:21
Надо обратное сделать.
Я в проекте решил использовать интерфейсы только для для implements в классах. То есть везде в основном type. Потом на Reason перекатиться легче.

Andrew
14.05.2018
18:00:19
В фейсбуке все захватили окамлисты?

Сначала они типизировали яваскрипт на окамле, теперь вообще транспилируют

Sergey
14.05.2018
18:04:20
А зачем перекатываться на reason? Flow недостаточно маргинален?

Kirill
14.05.2018
18:06:00
Например?
Аннотация типов, типы некоторые. Но если я не прав, исправьте пожалуйста.

Sergey
14.05.2018
18:10:39
Sergey
14.05.2018
18:12:03
А кложурскрипта нет

(лисперы негодование)

Andrew
14.05.2018
18:13:25
Аннотация типов, типы некоторые. Но если я не прав, исправьте пожалуйста.
Вообще у F# синтаксис типичный для семейства ML, а оригинальные фичи - это всякие active patterns, workflows и тэ дэ, чего в Typescript нет и наверняка никогда не будет

Andrew
14.05.2018
18:25:19
Fable. Но говорят, что не так перспективен как Reason.
Причем тут Fable? Как он связан с Typescript?

Maxim
14.05.2018
18:30:50
А так норм

Ҫѐҏӗѫӑ
14.05.2018
18:44:30
Google
Александр
14.05.2018
18:53:40
Abdulvakhab
14.05.2018
19:20:06
Ребята, предпологалось, что этот код будет создавать четыре div'a с onclick() на деле созадются 4 элемента, но кнопка не подхватывается первыми тремя



не могу понять почему этот метод не подхватывается первыми тремя. подскажите куда копать?

Мурад
14.05.2018
19:27:21
button откуда берется?

Morsik
14.05.2018
19:28:30
ну и зачем тебе этот map? напиши внутри фора сразу лучше

Admin
ERROR: S client not available

Kirill
14.05.2018
19:32:12
Причем тут Fable? Как он связан с Typescript?
Ну F# потому что и решает проблему JavaScript как и TypeScript.

Morsik
14.05.2018
19:33:55
Sergey
14.05.2018
19:42:43
Ну F# потому что и решает проблему JavaScript как и TypeScript.
Тс хорошо зашёл потому что интегрировался с жс без революций, definitely typed, any

Ну оно для реальной жизне

А так в жс много кто умеет деградировать, только толку вот

Abdulvakhab
14.05.2018
19:46:14
button откуда берется?
создал отдельный элемент выше.

Stepan
14.05.2018
19:51:26
создал отдельный элемент выше.
Так а что ты хочешь сделать? У тебя сейчас создаётся 4 дива и 4 раза переопределяется обработчик нажатия на какой-то button, который где-то у тебя выше. И это не вопрос по тайпскрипту

Abdulvakhab
14.05.2018
19:56:20
Так а что ты хочешь сделать? У тебя сейчас создаётся 4 дива и 4 раза переопределяется обработчик нажатия на какой-то button, который где-то у тебя выше. И это не вопрос по тайпскрипту
простите за невежество, не могли бы вы подсказать где я могу найти информацию как привязать один button к четырем дивам? И к чему относится этот вопрос?

Мурад
14.05.2018
19:57:03
К javascript

Используй addEventListener вместо onclick

Max
15.05.2018
07:37:21
interface State { view: View; [CONFIG]: boolean; [CALC]: boolean; [DELETE]: boolean; delete: ModalDialogOptions; }

Error:(110, 23) TS2345: Argument of type '{ [x: string]: boolean; }' is not assignable to parameter of type 'State | ((prevState: Readonly<State>, props: Props) => State | Pick<State, "configViewPopup" | "c...'. Type '{ [x: string]: boolean; }' is not assignable to type 'Pick<State, "configViewPopup" | "calculationPopup" | "deleteViewPopup" | "view" | "deleteViewPopu...'. Property 'configViewPopup' is missing in type '{ [x: string]: boolean; }'.

я сначала поля переименовал, поэтому не удивляйся

Google
des
15.05.2018
07:38:40
ошибка на строчке [id] возникает onClose(id: string): void { this.setState({ [id]: false }); }

Max
15.05.2018
07:39:27
[propName: string]: boolean

des
15.05.2018
07:39:32
сам вопрос

Всем привет, ребят, можете подсказать как сейчас в TypeScript работают с setState в реакте чтобы изменить только одно поле?

какие тренды и модные направления в связи с этим?

Max
15.05.2018
07:39:39
добавь в интерфейс стейта

это проблема не реакта

des
15.05.2018
07:40:46
interface State { view: View; [CONFIG]: boolean; [CALC]: boolean; [DELETE]: boolean; delete: ModalDialogOptions; [propName: string]: boolean; } так? выглядит странно

мне тут подсказывают Partial использовать

Max
15.05.2018
07:49:06
ну если у тебя нет использования пропертей а идут ключи рандомные то так

Partial просто делает все поля интерфейса опциональными

des
15.05.2018
07:53:00
от этого другая ошибка появляется уже в типе стейта

Error:(35, 5) TS2411: Property 'deleteViewPopupConfig' of type 'ModalDialogOptions' is not assignable to string index type 'boolean'.

Max
15.05.2018
07:57:17
ну переведи )

deleteViewPopupConfig задай нормально

Aleh
15.05.2018
08:12:13
ошибка на строчке [id] возникает onClose(id: string): void { this.setState({ [id]: false }); }
Если у тебя state имеет только конкретные поля, а не любые, то id должен быть не string, а keyof State

Aleh
15.05.2018
08:13:28
Нужно я бы сказал)

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