
Max
16.04.2018
15:03:21

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

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

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

Mark
17.04.2018
12:54:52

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
сек
что значит динамически?
Что значит динамически - это значит что к методу при вызове указывать тип - а в нутри метода работать с типом который будет приходить

Dmitry
17.04.2018
12:56:58

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
Сейчас попробую


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

Сергей
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 и саму библиотеку и описания типов для нее?

Valery
18.04.2018
18:33:01