@typescript_ru

Страница 467 из 669
Artur
23.01.2018
18:34:31
Хоть выше и стоит фильтр, но видимо на тайпинги он никак не влияет

Artur
23.01.2018
18:48:26
NavigationEnd наследуется от Event (расширяет дополнительными свойствами)
Всякий NavigationEnd является Event, но не всякий Event является NavigationEnd. .subscribe ждёт коллбек, который обработает всякий Event. Подробнее смотри ковариантность/контравариантность

Google
Maksim
23.01.2018
18:56:16
Ее в этом случае лучше отключить или есть какой-то способ обойти эту проверку? (через хитрый as в параметрах или еще как-то)

просто проверка то полезная по сути, поэтому не хочется отключать, но в данном случае она только палки в колеса ставит

Artur
23.01.2018
18:56:57
я это понимаю. Что делать то?
в идеале подправить тайпинги для rxjs, чтобы filter() сужал тип протаскиваемого события

Но не уверен что это в принципе возможно

Я бы в subscribe всегда ждал Event и внутри скастовал бы к NavigationEnd

Maksim
23.01.2018
18:58:36
ну да, как вариант

Kelin
23.01.2018
19:32:46




Разве нижнее не отбрасывает необходимость писать остальные 3?

Mike
23.01.2018
19:50:56
Тут такое дело. Если сигнатур больше одной то работают все кроме последней

Последняя супер общая для реализации внутри. А три верхних допускают использование любой из них. Но каждая жестче чем нижняя

Ts резолвит их сверху вниз в порядке указания, какая подошла ту и заюзает

Google
Mike
23.01.2018
20:34:05
жа, не обратил внимания. Но и тут в d.ts это имеет смысл

так как разные return types

стоп

нет

Kelin
23.01.2018
20:58:42
сложно

Max
24.01.2018
12:43:15
declare module 'object-path-immutable' { type Path = string | string[] interface WrappedObject<T> { set(path?: Path, value?: any): WrappedObject<T> push(path?: Path, value?: any): WrappedObject<T> del(path?: Path): WrappedObject<T> assign(path?: Path, source?: T): WrappedObject<T> value(): T } export default function immutable<T>(obj: T): WrappedObject<T> }

если импортирую как import immutable from 'object-path-immutable' то получаю undefined

Aleh
24.01.2018
12:44:02
в компайл-тайме или в рантайме?

Max
24.01.2018
12:44:09
если импортирую как import * as immutable from 'object-path-immutable' то работает, но имею TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'typeof 'object-path-immutable'' has no compatible call signatures.

в рантайме

Aleh
24.01.2018
12:44:38
либо исправь тайпинги, либо исправь tsconfig

Max
24.01.2018
12:44:39
второе в компайле

Aleh
24.01.2018
12:45:43
что именно? :)
в тайпингах у тебя написано, что есть некий дефолтный экспорт, а это не так, можно в tsconfig поставить allowSyntheticDefaultImports

Max
24.01.2018
12:46:01
хм, а как правильнее?

я могу и тайпинги поправить

Aleh
24.01.2018
12:46:20
ну вообще в тайпингах должно быть чето типа export = yourFunction

для таких вот nodejs модулей

Max
24.01.2018
12:46:40


тогда имею

Google
Aleh
24.01.2018
12:47:12
ты мержишь тайпинги?

Max
24.01.2018
12:47:17
сек

https://github.com/syabro/object-path-immutable/blob/master/object-path-immutable.d.ts

короче либа отдает дефолтный враппер и пучок функций

было все ок пока дефолтный враппер не понадобился

:/

Aleh
24.01.2018
12:48:53
type ObjectPathImmutable = { (): Blablah set(): BlahBlah } declare const exports: ObjectPathImmutable export = exports

чето такое

Max
24.01.2018
12:49:33
хм

сеек

про { (): T } не додумался

Aleh
24.01.2018
12:49:50
ну либо пофикси в либе, чтоб она риал дефолтный отдавала)

D
24.01.2018
12:50:31
Как вариант еще использовать что-то с больше чем 180 старов, если проект и сроки позволяют. Типо https://github.com/mweststrate/immer

Max
24.01.2018
12:52:29
не, мне интерфейс иммера не нравится

@mkusher заработало, спасибо

declare module 'object-path-immutable' { const exports: ObjectPathImmutable export default exports }

через дефолтный сделал

Aleserche
24.01.2018
13:15:20
http://www.typescriptlang.org/play/index.html#src=class%20BaseClass%20%7B%0D%0A%20%20%20%20constructor(public%20id%3A%20number)%20%7B%0D%0A%20%20%20%20%20%20%20%20this.id%20%3D%20id%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Alet%20b%20%3D%20new%20BaseClass(128)%3B почему задваивает? В доках посмотрел и в issue, пока не нашел. Может кто знает

Igor
24.01.2018
13:18:40
Потому что ты сам задваиваешь

Aleserche
24.01.2018
13:18:53
Да, уже понял

Google
Ҫѐҏӗѫӑ
24.01.2018
16:42:03
https://codewithstyle.info/typescript-discriminated-union-types/

Andrew
24.01.2018
17:42:25
для нормального фп
Нафига нужны кортежи, если есть куда более удобные анонимные интерфейсы?

Admin
ERROR: S client not available

andretshurotshka?❄️кде
24.01.2018
17:44:18
в аргументах функции у тебя не будет анонимных интерфейсов

...args все такое

вообще я думал для тайплевел итерации сделали

andretshurotshka?❄️кде
24.01.2018
17:46:04
почему?
ну спред

Max
24.01.2018
17:46:12
(...args: string[])

andretshurotshka?❄️кде
24.01.2018
17:46:17
рест то есть

Andrew
24.01.2018
17:46:27
А, кстати да, теперь можно будет проверять частичное применение

Хотя не, стоп

Args это же тупо массив произвольного размера

А кортежи - структура для хранения фиксированного числа объектов потенциально разных типов

andretshurotshka?❄️кде
24.01.2018
17:50:47
сможешь складывать кортежи на тайплевеле

чо нет

Сергей
24.01.2018
17:50:49
любых типов

Andrew
24.01.2018
17:51:20
andretshurotshka?❄️кде
24.01.2018
17:52:18
не там tycho01 костылил

он же и добавил кортежи фиксированного размера

Google
Andrew
24.01.2018
17:53:37
Ну щас вроде как можно условия в тайплевеле использовать

Осталось только зависимые типы притащить

andretshurotshka?❄️кде
24.01.2018
17:56:09
если добавят спред

для таплов

в типах

то можно будет пилить всякую хренотень

andretshurotshka?❄️кде
24.01.2018
17:58:37
https://github.com/Microsoft/TypeScript/issues/6229

там вроде хотели path типизировать

Ҫѐҏӗѫӑ
24.01.2018
22:47:05
хуево без овнера

Mike
24.01.2018
22:50:45
совсем админов не осталось?

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