@typescript_ru

Страница 580 из 669
Anton
16.04.2018
15:03:39
в простом варианте у вас судя по всему литеральный тип. С ними такое не канает

Макс, простейший пример в студию :)

Max
16.04.2018
15:03:59
вот, он не пашет )

Google
Max
16.04.2018
15:04:09
через колбек - пашет

пытаюсь понять почему

Anton
16.04.2018
15:04:26
где, вот? :) можно код?

Max
16.04.2018
15:04:46
interface A { a: string, b: number } const ololo: A = { a: '1', b: 1, c: false }

все ок - ругается на c

Andrey
16.04.2018
15:05:14
Kirill
16.04.2018
15:06:09
Сурово.
Баг или фича?

Anton
16.04.2018
15:06:48
так утиная типизация работает при сравнении типов. Более широкий тип можно положить в более узкий. TS всё равно лишними свойствами тебе пользоваться не даст

Max
16.04.2018
15:08:02
ну валидации функции то не будет

можно конечно руками написать foo(():A => ({ a: '1', b: 1, c: false }))

Kirill
16.04.2018
15:08:25
interface A { a: string, b: number } const ololo: A = { a: '1', b: 1, c: false }
Так тут сравнения нет что-ли? Почему не работает утка?

Max
16.04.2018
15:08:29
тогда будет ругаться

Так тут сравнения нет что-ли? Почему не работает утка?
это и многое другое в журнале "а хуй его знает"

Google
Max
16.04.2018
15:08:49
за декабрь

короче пойду проект дописывать, и так весь день на типы убил

Kirill
16.04.2018
15:10:51
Issue заводить в итоге?

Vlad
16.04.2018
16:32:27
Требуют точного соответствия типа при инициализации типа литералом. При этом, вот так - ок



Эта фича называется "excess property checking". Приведение типов объектных литералов обрабатываются специально, чтобы отлавливать опечатки в именах свойств. В противном случае, было бы так же больно как и в простом JS, не смотря на типизацию.

Поэтому "не работает утка".

да, но через new не работает доступ к статикам
Попробуй вот так написать. { new (): EnhancedComponent<Store> } & typeof EnhancedComponent Статики в классах нельзя параметризовать, так что то, что зависит от Store, да - придется перекрывать, чтобы задать правильные сигнатуры.

Max
17.04.2018
06:56:52
Хорошие новости для поклонников styled-components, скорее всего в 2.9 появится возможность задавать generic в tagged templates, отсутствие этой фичи было огромной головной болью для всех https://github.com/Microsoft/TypeScript/pull/23430

Ilya
17.04.2018
10:40:26
enum Exchanges {} class Fees { // readonly isCompleted: Promise; [Exchanges]: FeeCoin[]; } A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type. как заставить работать ? тоесть из enum добавить все константы в класс

Sergey
17.04.2018
10:46:23
Как проперти?

Ilya
17.04.2018
10:47:30
да

Sergey
17.04.2018
11:01:59
https://stackoverflow.com/questions/44007870/typescript-property-x-is-missing-in-type-for-computed-key

Какие-то жёсткие костыли

Ilya
17.04.2018
11:05:50
не, это не то видимо пока не умеет это ts

Sergey
17.04.2018
11:06:44
https://github.com/Microsoft/TypeScript/issues/16687

Ну от там ещё бурные обсуждения

Я сам не сталкивался, так, просто инетерсно стало

Ilya
17.04.2018
11:07:46
[Test.A так то работает, но там типа обход нужен..

Google
Razzwan
17.04.2018
11:07:47
Файловая структура такая: http://joxi.ru/GrqKD54sN3Qqq2 в tsconfig.json приписал такие настройки: { "compilerOptions": { "baseUrl": "src", "paths": { "@common/*": ["common/*"] } } Но при попытки вот так использовать путь import { ValidationResponseDto } from '@common/exceptions/dto/ValidationResponseDto'; , валится ошибка, что такой путь не найден. Что я делаю не так?

andretshurotshka?❄️кде
17.04.2018
11:16:14
https://github.com/Microsoft/TypeScript/pull/23430

Max
17.04.2018
11:29:56
я уже его постил утром сюда) наконец-то кого-то это тоже интересует)

Mark
17.04.2018
12:52:04


В чем беда ? почему дженерик тип не подтягивается ?

Не отрабатывает как следует

Max
17.04.2018
12:53:00
а с чего должен?

ты хоть extends ему сделай

Dmitry
17.04.2018
12:53:18
Mark
17.04.2018
12:53:19
Оо а как ? :_)

Max
17.04.2018
12:53:48
<C extends MyInterface>

Mark
17.04.2018
12:53:57
потому что у C может и не быть myInput
ну у меня есть компонент в котором есть это поле - и этот компонент я делаю дженериком - следовательно там должны появиться поля

Max
17.04.2018
12:54:40
нет, в методе ты ничего не делаешь )

Mark
17.04.2018
12:54:52
<C extends MyInterface>
а как тогда такое динамически делать ?

Max
17.04.2018
12:54:55
покажи как ComponentRef объявлен

Mark
17.04.2018
12:54:59
Согласен что перестало подчеркивать

сек

Max
17.04.2018
12:55:07
Admin
ERROR: S client not available

Google
Mark
17.04.2018
12:55:14
ctr

сек



что значит динамически?
Что значит динамически - это значит что к методу при вызове указывать тип - а в нутри метода работать с типом который будет приходить

Max
17.04.2018
12:57:31
со статическими методами наебнется

Dmitry
17.04.2018
12:57:39
со статическими методами наебнется
https://www.typescriptlang.org/play/#src=interface%20MyComponent%20%7B%0D%0A%20%20%20%20myInput%3A%20number%3B%0D%0A%7D%0D%0A%0D%0Ainterface%20ComponentRef%3CT%3E%20%7B%0D%0A%20%20%20%20instance%3A%20T%3B%0D%0A%7D%0D%0A%0D%0Aclass%20Test%3CC%20extends%20MyComponent%3E%20%7B%0D%0A%20%20%20%20public%20func(cmpRef%3A%20ComponentRef%3CC%3E)%20%7B%0D%0A%20%20%20%20%20%20%20%20cmpRef.instance.myInput%20%3D%201%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A

ну прокидывать тип в метод, не в этом вопрос

Max
17.04.2018
12:58:14
а тогда нужен extend :)

Mark
17.04.2018
12:58:18
Надо прокинуть тип в метод чтоб я там мог обработать

но похоже только экстендс помогает ?

Max
17.04.2018
12:58:48
https://www.typescriptlang.org/play/#src=interface%20MyComponent%20%7B%0D%0A%20%20%20%20myInput%3A%20number%3B%0D%0A%7D%0D%0A%0D%0Ainterface%20ComponentRef%3CT%3E%20%7B%0D%0A%20%20%20%20instance%3A%20T%3B%0D%0A%7D%0D%0A%0D%0Aclass%20Test%3CC%20extends%20MyComponent%3E%20%7B%0D%0A%20%20%20%20static%20func(cmpRef%3A%20ComponentRef%3CC%20extends%20MyComponent%3E)%20%7B%0D%0A%20%20%20%20%20%20%20%20cmpRef.instance.myInput%20%3D%201%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A

а как еще метод узнает что в С есть myInput?

Mark
17.04.2018
12:59:38
а как еще метод узнает что в С есть myInput?
Ну тогда это не динамический тип... тогда надо для класса делать интерфейс

Сейчас попробую

Dmitry
17.04.2018
13:01:25
Добавил со статическим пример https://www.typescriptlang.org/play/#src=interface%20MyComponent%20%7B%0D%0A%20%20%20%20myInput%3A%20number%3B%0D%0A%7D%0D%0A%0D%0Ainterface%20ComponentRef%3CT%3E%20%7B%0D%0A%20%20%20%20instance%3A%20T%3B%0D%0A%7D%0D%0A%0D%0Aclass%20Test%3CC%20extends%20MyComponent%3E%20%7B%0D%0A%20%20%20%20public%20func(cmpRef%3A%20ComponentRef%3CC%3E)%20%7B%0D%0A%20%20%20%20%20%20%20%20cmpRef.instance.myInput%20%3D%201%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20public%20static%20staticFunc%3CK%20extends%20MyComponent%3E(cmpRef%3A%20ComponentRef%3CK%3E)%20%7B%0D%0A%20%20%20%20%20%20%20%20cmpRef.instance.myInput%20%3D%201%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Aconst%20cmpRef%3A%20ComponentRef%3CMyComponent%3E%20%3D%20%7B%0D%0A%20%20%20%20instance%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20myInput%3A%202%0D%0A%20%20%20%20%7D%0D%0A%7D%3B%0D%0A%0D%0ATest.staticFunc%3CMyComponent%3E(cmpRef)%3B%0D%0A

Andrey
17.04.2018
14:12:33
объясните, когда генерится *.d.ts для либы во входном файле типов public_api, экспорты происходят с алиасом с непонятными символами TabComponent as ɵb зачем так делается ?

Vlad
18.04.2018
07:39:17
Ребята кто знает каналы по рэббит мк

Google
Vladimir
18.04.2018
09:15:23
только оффдоки

Andrey
18.04.2018
09:35:59
Ребята кто знает каналы по рэббит мк
есть devops https://t.me/devops_ru может там тебе смогут помочь

Сергей
18.04.2018
11:08:00
Ребята кто знает каналы по рэббит мк
каналы от чатов не отличаешь?

Vlad
18.04.2018
11:08:37
ну не отличаю, критично?

@jashka_jashka спасибо)

Евгений Vúffe
18.04.2018
18:31:35
Всем привет! У меня вопрос с наскока. Я сделал npm -i hightcharts и затем npm -i @types/hightcharts. Как мне подключить в ts и саму библиотеку и описания типов для нее?

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