
andretshurotshka?❄️кде
16.04.2018
08:31:39

Ҫѐҏӗѫӑ
16.04.2018
08:38:59
это не оператор

andretshurotshka?❄️кде
16.04.2018
08:40:09
А все, вспомнил че там

Max
16.04.2018
08:44:26
Операнд)

Google

Adam
16.04.2018
08:47:59
Что за «плюсик?»
Насколько я знаю, из операторов только инфиксный восклицательный знак появился
После операнда

Aleh
16.04.2018
08:49:33

Adam
16.04.2018
08:50:06
ого

Vlad
16.04.2018
09:20:33
Ребята а почему я не могу используя knex в тайпскрипте при конфигурации Knex у меня нет поля extensions
this.knex = Knex({
client: 'pg',
connection: {
charset: 'utf8',
database: postgresSettings.database,
host: postgresSettings.host,
password: postgresSettings.password,
user: postgresSettings.user
},
searchPath: [this.pgs.schema],
migrations: {
directory: ${__dirname}/migrations,
extensions: ['ts', 'js']
}
});


sanqa
16.04.2018
13:06:45
interface IOrderBookItem {
buy: {
price: number;
number: number;
size: number;
};
sell: {
price: number;
number: number;
size: number;
};
}
парни описал такой интерфейс, но ругается на error TS2339: Property 'buy' does not exist on type 'OrderBookItem[]'., c sell точно так же
и конструктор export class OrderBookItem implements IOrderBookItem {
buy: {
price: number;
number: number;
size: number;
};
sell: {
price: number;
number: number;
size: number;
};
constructor(buy: {
price: 0,
number: 0,
size: 0
},
sell: {
price: 0,
number: 0,
size: 0
}) {}

Vitaliy
16.04.2018
13:19:33
> price: 0,
а покажи место использования?
ошибку показывает с массивом
может ты переменной IOrderBookItem присваиваешь массив, или что-то в этом роде

Google

sanqa
16.04.2018
14:19:06
ну вообще да
массив с 2 объектами buy и sell

Max
16.04.2018
14:20:49
пасаны
а как нормально вернуть класс?
class Something {
static firstName = 'Max'
}
console.log(Something.firstName)
const getClass = (): new () => Something => Something
const NewClass = getClass()
console.log(NewClass.firstName)
последняя строка падает

Vitaliy
16.04.2018
14:36:18
(): typeof Something => Something;

Max
16.04.2018
14:38:15
хм, сек
ок, работает
я уже по-другому переписал, но спасибо
была проеблема с typeof давно просто
https://github.com/Microsoft/TypeScript/issues/18252

Kirill
16.04.2018
14:39:53

Max
16.04.2018
14:40:23
а почему должен?

Дмитрий
16.04.2018
14:40:44

Max
16.04.2018
14:40:59
дим, я тайпинг для либы пишу )
там не получится "оставить как есть" :(
ну вроде победил

Дмитрий
16.04.2018
14:41:25
Аа, ну тут тогда загон, да
Я недавно про это же тут спрашивал

Max
16.04.2018
14:41:38
export function getProvider<Store extends SharedStore>(
name: string,
StoreClass?: new(storeName: string, initialState?: any) => Store
): {
new(): EnhancedComponent<Store>
connect<TOuterProps, TMappedProps>(mapStoreToProps: MapStateToProps<Store, TOuterProps, TMappedProps>): ComponentDecorator<Store, TOuterProps>
}
добрый вечер

Google

Max
16.04.2018
14:41:59
через полгода опять буду 2 часа в это въезжать

Дмитрий
16.04.2018
14:42:35
О да, этому коду определённо не хватает ещё синтаксических матюков)
?

Max
16.04.2018
14:42:46
ага

Artur
16.04.2018
14:43:19

Дмитрий
16.04.2018
14:43:31
Блин, степень полиморфизма connect в react-redux уже третий год травмирует людей

Max
16.04.2018
14:43:50
ну да, тот же самый коннект :)

Kirill
16.04.2018
14:44:00
а почему должен?
Почему {...state, c: 1} совместим с типом State?
Поля c ведь нету в State.

Andrey
16.04.2018
14:44:01

Дмитрий
16.04.2018
14:44:14
А там ж ещё connectAdvanced есть, ууух

Max
16.04.2018
14:44:27

Andrey
16.04.2018
14:44:38

Andrey
16.04.2018
14:44:57
Когда они будут говорить про лаконичность и чистоту ts)

Дмитрий
16.04.2018
14:45:02
Они j[et.n ghjcnj

Max
16.04.2018
14:45:13
ну если в такой пиздец не лезть то более менее

Сергей
16.04.2018
14:45:30

Artur
16.04.2018
14:45:32
С mobx вообще норм заходит, в нём такого писать не приходится )

Max
16.04.2018
14:45:32
интересно как на флоу будет выглядеть

Дмитрий
16.04.2018
14:45:47

Max
16.04.2018
14:45:59
Артур, у меня свой стейт-менеджер и я для него пишу тайпинги

Google

Andrey
16.04.2018
14:46:05

Дмитрий
16.04.2018
14:46:08
Потому что люди проект свой типизируют, а не рынок захватывают

Max
16.04.2018
14:48:25
через typeof прилетает новый пиздец
ладно, оставлю через new пока
странно правда

Дмитрий
16.04.2018
14:49:41
Мне показали иное решение, но я чёт оказался не готов такое тащить в тайпинги

Admin
ERROR: S client not available

Max
16.04.2018
14:49:47
покаж
я рисковый парень

Дмитрий
16.04.2018
14:51:09
Кстати, вот по поводу вот этого вот скрина
Допустим, я хочу универсальное решение, то бишь чтобы выводилось и на тайпскрипте
В флоу этот код описан вот так
declare export class FSM<Data, Ctx> {
when<D: Data, S: Ctx>(
data: Class<D>,
state: Class<S>,
(data: D, state: S) => Ctx,
): this;
}
А как объявить Class<D> в тс? Уже всё из головы вылетело)
class Foo {}
// Это ссылка на инстанс
const foo: Foo = new Foo()
// Это ссылка на сам класс
const bar = Foo
typeof bar // => Class<Foo>
Вот мне нужно для любого дженерика сказать, что мы имеем вот этот вот самый bar для данного типа,
export interface Class<T> extends Function {
new (...args: any[]): T;
}
Я кстати тебе изначальный скрин и кидал)

Max
16.04.2018
14:51:55
да, но через new не работает доступ к статикам
у меня так и есть тащемта

Дмитрий
16.04.2018
14:52:41
Кейс для интерфейса

Google

Max
16.04.2018
14:52:52
ну вынесу я это в интерфейс
будет то же самое, просто будет еще и интерфейс

Дмитрий
16.04.2018
14:53:43
А, хотя да
Блин, дно

Сергей
16.04.2018
14:54:03
жесть какая

Max
16.04.2018
14:54:31
да похуй
закоммичу и не буду это тыкать палкой еще полгода
наружу аккуратно торчать все будет :)

Kirill
16.04.2018
14:58:22

Anton
16.04.2018
14:59:47
Может кто помочь?
Это утиная типизация :) Если все поля, необходимые State'у есть - оно нам подходит

Kirill
16.04.2018
15:00:35

Anton
16.04.2018
15:01:17
Перечитай моё сообщение ещё раз :) лишние нас не интересуют, это не проблема

Max
16.04.2018
15:01:46

Anton
16.04.2018
15:01:54
главное, чтобы тип был не Уже, чем нам надо. Шире можно

Max
16.04.2018
15:01:57
упс
щас

Andrey
16.04.2018
15:02:07
Надеюсь, что аналогия ясна.

Kirill
16.04.2018
15:02:19

Max
16.04.2018
15:03:11
а хм