
Max
26.04.2018
13:46:41

Дмитрий
26.04.2018
13:47:58
Если сделать нормальные тесты данного типа, с false positive и false negative то выяснится что он успешно их проваливает
Потому что в доке чёрным по белому сказано, как работают disjoint unions)

Google

Дмитрий
26.04.2018
13:50:56
И даже если это можно выводить тем или иным образом, матчинг по полю (как предполагается когда вы работаете с disjoint), кардинально повышает надёжность и стабильность вывода типа

Max
26.04.2018
14:42:04
а где это в доке сказано, не нашел

Sukhrob
26.04.2018
15:25:55
Текст ошибки:
Argument of type '(this: void, animal: Animal) => any' is not assignable to parameter of type '(this: void, value: Animal, index: number, obj: Animal[]) => value is T'.
Signature '(this: void, animal: Animal): any' must be a type predicate.

Aleh
26.04.2018
15:29:16
function isDog(a: Animal): a is Dog {
return a instanceof Dog
}
...
return animals.find(isDog)

Alice
26.04.2018
15:29:46

Sukhrob
26.04.2018
15:30:07

Alice
26.04.2018
15:31:12
Это что такое?
class Animal {}
class Dog ... { type: 'dog' }
class Cat ... { type: 'cat' }
...
... x.type === 'dog'
Должно работать вроде.

Sukhrob
26.04.2018
15:32:40
что-то не то...
Мне нужно исправить только 15-ую строку.

Alice
26.04.2018
15:33:10
Но дисджоинт юнионы всяко лучше, имхо.

Sukhrob
26.04.2018
15:34:06

Алексей
26.04.2018
15:34:25
Можешь у флагов внутри классов тип поставить

Google

Sukhrob
26.04.2018
15:34:25

Дмитрий
26.04.2018
15:34:54

Sukhrob
26.04.2018
15:35:52
Дело в том, что если пользоваться методом Array.find() то проблем нет. Но когда я хочу задать тип:
Array.find< T > ( )
То выясняется, что предикат-то я не могу написать по феншую....
В этом проблема. А не в классах анимал, дог и кэт.

Alice
26.04.2018
15:35:55

Sukhrob
26.04.2018
15:37:12
Есть у кого примеры, как пользоваться:
Array.find< T > ( )
?

Дмитрий
26.04.2018
15:37:53

andretshurotshka?❄️кде
26.04.2018
15:43:33
мимо
goo.gl/623G1j

Дмитрий
26.04.2018
15:46:04
Еее бивариантность

andretshurotshka?❄️кде
26.04.2018
15:48:46
о
в стрикт функциях в другоом месте ошибка

Дмитрий
26.04.2018
15:49:40
Лол, а там же правда ошибка

andretshurotshka?❄️кде
26.04.2018
15:50:14
а нет
там же

Дмитрий
26.04.2018
15:51:11
Некорректно говорить что после функции .find у тебя будет тип T, только T | void
Без стрикта тс на это клал с пробором)

Sukhrob
26.04.2018
15:51:36
Нашел решение
все оказалось просто

andretshurotshka?❄️кде
26.04.2018
15:52:23

Google

andretshurotshka?❄️кде
26.04.2018
15:52:57

Sukhrob
26.04.2018
15:53:10
и все, предикат написан верно
а содержимое предиката это уже другая история, потому я его сократил до true

Дмитрий
26.04.2018
15:54:05
Еее касты

Sukhrob
26.04.2018
15:54:11
Ура! Еще один камень машинописи сгрызен!

Юра
26.04.2018
15:54:24
да этож чуш

Дмитрий
26.04.2018
15:54:39
ето обман

Юра
26.04.2018
15:54:50
https://i.gyazo.com/d230ca90a4f6a9a9042e753806c1993a.png
и смысл этой функции

andretshurotshka?❄️кде
26.04.2018
15:55:31
>это уже другая история
не читай тред, пости мемы

Юра
26.04.2018
15:56:23
axios для редакса)

Юра
26.04.2018
15:56:24
ага)

Sukhrob
26.04.2018
15:57:10
разница большая

Юра
26.04.2018
15:57:32
я тебе скинул транспилинный вариант

Sukhrob
26.04.2018
15:57:59
и смысл этой функции
а по поводу смысла я уже не раз писал:
> а содержимое предиката это уже другая история, потому я его сократил до true
и ранее:
> Пример сильно утрирован. Но думаю смысл не потерялся.
зачем было показывать что он там перевел?

Damir
26.04.2018
15:59:42
Typescript охуенен ?

Google

Sukhrob
26.04.2018
16:00:10

andretshurotshka?❄️кде
26.04.2018
16:09:00
эт я не тебе ответил)

Le
26.04.2018
16:16:45
find<Dog>().isDog какой-то странный код
дженерики с рантаймом намешаны

Sukhrob
26.04.2018
16:17:13
find<Dog>().isDog какой-то странный код
сколько можно писать???
вот еще раз пишу:
а по поводу смысла я уже не раз писал:
> а содержимое предиката это уже другая история, потому я его сократил до true
и ранее:
> Пример сильно утрирован. Но думаю смысл не потерялся.

Le
26.04.2018
16:17:58

Admin
ERROR: S client not available

Sukhrob
26.04.2018
16:18:18

Le
26.04.2018
16:18:43
ну ладна

Sukhrob
26.04.2018
16:21:09
ну ладна
Я в след. раз по другому код распишу.
Абстрактный код похоже никто не понимает, даже если прокомментируешь его(

Le
26.04.2018
16:22:58

Sukhrob
26.04.2018
16:23:22
> дженерики
по английски как термин то звучит?

Aleh
26.04.2018
16:23:36
https://www.typescriptlang.org/play/index.html#src=interface%20Animal%20%7B%20%7D%0D%0Aclass%20Dog%20%7B%0D%0A%20%20%20%20isDog%20%3D%20true%0D%0A%7D%0D%0A%0D%0Afunction%20isDog(a%3A%20Animal)%3A%20a%20is%20Dog%20%7B%0D%0A%20%20return%20a%20instanceof%20Dog%0D%0A%7D%0D%0Afunction%20f(animals%3A%20Animal%5B%5D)%20%7B%0D%0A%20%20%20%20return%20animals.find(isDog)%0D%0A%7D%0D%0A

Le
26.04.2018
16:23:40
generics

Aleh
26.04.2018
16:24:25

Sukhrob
26.04.2018
16:24:31
обобщения что-ли?

Le
26.04.2018
16:25:01
ну наверно это так переводится
я вообще имел в виду, что Dog передается не как аргумент функции, а как аргумент дженерика

Google

Le
26.04.2018
16:27:19
и непонятно зачем и как это должно работать

andretshurotshka?❄️кде
26.04.2018
16:28:00
лол

Sukhrob
26.04.2018
16:29:42

Le
26.04.2018
16:31:39

Sukhrob
26.04.2018
16:32:04
переборщил значит)

Dmitrii
26.04.2018
16:48:23
как загрузить tsconfig с помощью ts? интересует обработка extends
в общем хочется передать путь до tsconfig файла, а получить уже результирующий json (с раскрытыми extends)

andretshurotshka?❄️кде
26.04.2018
17:04:33
https://github.com/ikatyang/tsconfig-extends

Евгений
27.04.2018
07:17:35
Всем добра! Подскажите как быть с циклическими зависимостями?
В файле a.ts есть класс А, там объявлено что у него есть свойство с типом B. B описывается в b.ts и в конструторе ожидает получить параметр типа A ?

Sukhrob
27.04.2018
07:32:41
или возникают проблемы с пустым модулем в рантайме?

Евгений
27.04.2018
07:36:27
*** file a.ts
import { B } from './b';
console.log('*-*--*', B) // Function B() ....
export class A {
private threads: B[] = [];
}
*** file b.ts
import { A } from './a';
console.log('*-*--*', A); // undefined
export class Thread {
constructor(private a?: A) { }
}

Sukhrob
27.04.2018
07:41:02

Евгений
27.04.2018
07:42:01
проблема с пустым модулем

Sukhrob
27.04.2018
07:42:10
> console.log('*-*--*', A); // undefined
если это проблема, то да, при рекурсии будет проблема пустого модуля.
Это никак не решается. Перепроектируйте свои классы.