
Alexandr
15.05.2018
18:48:36
да, для браузера =)

Sergey
15.05.2018
18:48:50
Тады ой
Тс кажется таки до сих пор не умеет модули которые бы браузер жрал бы
Ну я правда не в курсе как там в современных бандлерах, застрял во временах browserify

Google

Alexandr
15.05.2018
18:56:04
да думал раз раз и начать кодить на TS =)
а тут оказывается надо изучать все это дело
Node JS давно копал, все забыл уже

Sergey
15.05.2018
18:58:45
Ну нода и тс и фронт и тс это очень разные ээээ способы времяпровождения
Ангулар хотя бы сразу на тс
А для вуе кто-то говорил что тайпинги вообще нельзя пока сделать нормально

Andrew
15.05.2018
19:01:07

Sergey
15.05.2018
19:07:20

Andrew
15.05.2018
19:07:55
Я сам давно не проверял, как там дела, но следующий проект буду точно делать на TS + Vue

Ҫѐҏӗѫӑ
15.05.2018
19:09:10
там шаблоны нетипизированные

Bogdan
15.05.2018
19:09:10
ойй, там весьма кривые тайпинги(
по карйей мере для vuex (store, для управления состянием, вобще плохо тайпается)

Sergey
15.05.2018
19:10:04

Google

Andrew
15.05.2018
19:22:26
там шаблоны нетипизированные
Вот тут чувак пишет что если использовать Vue.extend, свойства в шаблонах статически проверяются:
https://frontendsociety.com/writing-single-file-components-vue-files-in-typescript-vue-class-component-vs-vue-extend-c5c1d8e47b7

Ҫѐҏӗѫӑ
15.05.2018
19:24:32
там написано про какой-то vetur
просто так тайпчекать шаблоны очевидно не получится, потому что это невалидный тайпскрипт
и это причина, по которой в ангуляре форк tsc

Sergey
15.05.2018
19:26:32

Ҫѐҏӗѫӑ
15.05.2018
19:26:49
я это прочитал

Bogdan
15.05.2018
19:27:36

Sergey
15.05.2018
19:27:42

Bogdan
15.05.2018
19:28:19
в итоге внешние файлы испоьзую
<script lang="ts" src="./CategoryList.ts">
</script>

Andrew
15.05.2018
19:30:55

Ҫѐҏӗѫӑ
15.05.2018
19:31:02
там ленгвидж сервис, который с тайпскриптовым совместим
еще в конце статьи написано что от этого страдают пропсы
говорят во вью есть режим jsx. проще его с тайпскриптом заюзать имхо

Сергей
15.05.2018
19:33:18

Ҫѐҏӗѫӑ
15.05.2018
19:33:45
да и хуй с ним

Bogdan
15.05.2018
19:35:00
да, вродь как jsx не очень)

Сергей
15.05.2018
19:35:16
шаблоны так-то говнище
что в вуе, что в ангуляре

Google

Stanislav
15.05.2018
19:35:29
?

Ҫѐҏӗѫӑ
15.05.2018
19:35:42
в статических шаблонах есть толк когда это позволяет оптимизации делать
а во вью виртуальный дом
нахуя им статические шаблоны - хз

Сергей
15.05.2018
19:36:21
консерваторы, решили ангуляр1щиков перетащить

Ҫѐҏӗѫӑ
15.05.2018
19:36:34
в ангуляре и глиммере в этом есть толк
в vue - бесполезная хрень
тайпчек только убивает

Sergey
15.05.2018
19:37:27

Bogdan
15.05.2018
19:37:43

Сергей
15.05.2018
19:37:48
glimmer который на ember??

Ҫѐҏӗѫӑ
15.05.2018
19:37:58
интеллисенс - это для любого языка кагбэ

Сергей
15.05.2018
19:38:09
чет говно

Bogdan
15.05.2018
19:38:16

Ҫѐҏӗѫӑ
15.05.2018
19:38:17
я и говорю. бесполезность

Sergey
15.05.2018
19:38:36

Сергей
15.05.2018
19:38:42

Ҫѐҏӗѫӑ
15.05.2018
19:39:02

Google

Сергей
15.05.2018
19:39:37

Ҫѐҏӗѫӑ
15.05.2018
19:40:25
чем он хорош?
там архитнектура очень крутая и оптимизации потенциальные

Сергей
15.05.2018
19:40:45

Ҫѐҏӗѫӑ
15.05.2018
19:41:03

Admin
ERROR: S client not available

Ҫѐҏӗѫӑ
15.05.2018
19:41:13
ну что ж поделать
я убеждать не собираюсь если что)

Сергей
15.05.2018
19:41:36
никак не запилят идеальный фреймворк/библиотеку ))

andretshurotshka?❄️кде
15.05.2018
19:42:56
похоже на мол

Ҫѐҏӗѫӑ
15.05.2018
19:44:47
на што?

Sergey
15.05.2018
19:45:04

Sukhrob
16.05.2018
07:54:26

Bogdan
16.05.2018
08:02:14
Но ведь, если он абстрактный, то экземпляр все-равно не создать

Pavel
16.05.2018
08:39:18
Вроде как-то так...
NodeClass?: new()=>Node;

Sukhrob
16.05.2018
08:48:24
Вроде как-то так...
NodeClass?: new()=>Node;
дело сдвинулось, но теперь он выдает ошибку:
Expected 0 arguments, but got 1
то есть в новом классе похоже надо как-то определится с аргументами
когда АПИ конструкторов совпадает, то порядок. Но что делать, если АПИ конструкторов производных классов отличается от родительского?

Pavel
16.05.2018
08:53:07
А друг от друга у производных отличается?
Может, так?
NodeClass?: new(value:number)=>Node;

Sukhrob
16.05.2018
08:55:13

Google

Sukhrob
16.05.2018
08:56:09
А друг от друга у производных отличается?
да...чет так вышло что в одном из них последний аргумент стал необязательным... в общем это уже другая проблема. Главное что я теперь знаю как обозначить множество производных определенного класса


Dmitrii
16.05.2018
11:04:22
Всем привет. Пытаюсь тут заиспользовать withDefaults из typelevel-ts https://github.com/gcanti/typelevel-ts#objectdiff
Сначала проблема была в том, что объект можно было создать с неправильными значениями
interface Props {
theme: 'normal' | 'action';
size: 's' | 'm' | 'l';
}
const MyComponent: SFC<Props> = ({ size, theme }) => <div>size is {size}, theme is {theme}</div>;
const EnchancedComponent = withDefaults(MyComponent, { theme: 'zdarova_ebat' }); // ошибки нет
потом я немного функцию подпилил, теперь инлайн объект работает (на примере выше ошибка кидается). Но не инлайн объект по прежнему не работает, пока ему явно тип не задать
interface Props {
theme: 'normal' | 'action';
size: 's' | 'm' | 'l';
}
const defaultProps = { theme: 'zdarova_ebat' }; // TS вывел тип как { theme: string }
const MyComponent: SFC<Props> = ({ size, theme }) => <div>size is {size}, theme is {theme}</div>;
const EnchancedComponent = withDefaults(MyComponent, defaultProps); // здесь ошибка, что theme: string не совпадает с theme: 'normal' | 'action'
будет работать, если явно тип указать
...
const defaultProps: Pick<Props, 'theme'> = { theme: 'zdarova_ebat' }; // теперь будет ошибка
но как-то это не круто( Есть ли способы меньше бойлерплейта писать?


Kirill
16.05.2018
17:21:59
Всем привет. Пытаюсь тут заиспользовать withDefaults из typelevel-ts https://github.com/gcanti/typelevel-ts#objectdiff
Сначала проблема была в том, что объект можно было создать с неправильными значениями
interface Props {
theme: 'normal' | 'action';
size: 's' | 'm' | 'l';
}
const MyComponent: SFC<Props> = ({ size, theme }) => <div>size is {size}, theme is {theme}</div>;
const EnchancedComponent = withDefaults(MyComponent, { theme: 'zdarova_ebat' }); // ошибки нет
потом я немного функцию подпилил, теперь инлайн объект работает (на примере выше ошибка кидается). Но не инлайн объект по прежнему не работает, пока ему явно тип не задать
interface Props {
theme: 'normal' | 'action';
size: 's' | 'm' | 'l';
}
const defaultProps = { theme: 'zdarova_ebat' }; // TS вывел тип как { theme: string }
const MyComponent: SFC<Props> = ({ size, theme }) => <div>size is {size}, theme is {theme}</div>;
const EnchancedComponent = withDefaults(MyComponent, defaultProps); // здесь ошибка, что theme: string не совпадает с theme: 'normal' | 'action'
будет работать, если явно тип указать
...
const defaultProps: Pick<Props, 'theme'> = { theme: 'zdarova_ebat' }; // теперь будет ошибка
но как-то это не круто( Есть ли способы меньше бойлерплейта писать?
Так ты не прокидывай 'vsyakuu_huety' в theme, у тебя ведь указано, что 'normal' или 'action'.


andretshurotshka?❄️кде
16.05.2018
17:24:45
lol

Kirill
16.05.2018
17:26:25

andretshurotshka?❄️кде
16.05.2018
17:29:39
ну типо лучше чем флоу и тайпскрипт?
ето не к сообщению вопрос)

Kirill
16.05.2018
17:37:42
ну типо лучше чем флоу и тайпскрипт?
Пока не могу сказать, не имея практического опыта.
Но в теории, касательно вывода типов, пишут что лучше.
Плюс вчера в чате ризона же была дискуссия на тему мощности типов ocaml.

andretshurotshka?❄️кде
16.05.2018
18:12:06
пинг

Bogdan
16.05.2018
18:12:43
понг

andretshurotshka?❄️кде
16.05.2018
18:13:21
так че про диспатч?

Bogdan
16.05.2018
18:14:13
типа не логичнее было бы его так типизировать?

andretshurotshka?❄️кде
16.05.2018
18:15:28
ну есть допустим типы миддлвар
node_modules/redux/index.d.ts
export interface Dispatch { ... }
node_modules/redux-thunk/index.d.ts
declare module 'redux' {
аппендить кейс типо?
}