
Abu
14.06.2018
08:02:57

George
14.06.2018
08:03:33
хмм, спасибо, хорошая идея @artur_viktorovich

Дмитрий
14.06.2018
11:50:27
Менять прототип внутри самой функции ето жостко

Max
14.06.2018
12:00:01
Почему декоратор должен возвращать тот же класс?

Google

Max
14.06.2018
12:00:13
Ебанина какая-то

Artur
14.06.2018
12:00:24
Да, ебано

George
14.06.2018
12:39:44
Почему декоратор не влияет на типы, вот это печаль :(

Aleh
14.06.2018
12:40:13
почему никого не смущает название флага experimental

Andrey
14.06.2018
12:40:45

Олег
14.06.2018
12:42:17

Vlad
14.06.2018
12:42:31

Artur
14.06.2018
12:43:15
С декораторами тупо удобно

George
14.06.2018
12:43:23
ну по документации нет, но это печально) столкнулся с тем, что тайпскрипт не может в декораторах совсем

Artur
14.06.2018
12:43:38
декоратор класса должен изменять переданный в него класс, но не создавать новый, как то так

George
14.06.2018
12:44:22
пытался переопределить функцию-конструктор у класса, не вышло
может, но не идеально, да

Google

Artur
14.06.2018
12:44:38
Точнее так - ты можешь это сделать, для этого тебе просто надо скастовать типы через as any as
Но это срань конечно

George
14.06.2018
12:45:16
ну да, как я понимаю проблема то что он выполняется после компиляции, а до нее он просто не знает, что именно поменяется?
ну через эни не очень как то работать хах

Artur
14.06.2018
12:45:34
он просто делает тайпчек и чуть чуть меняет код

Алексей
14.06.2018
12:46:04

Artur
14.06.2018
12:46:08
https://github.com/Microsoft/TypeScript/pull/24439
А вот это уже обсирали?
а первый вариант полное отключение типов

George
14.06.2018
12:46:32

Олег
14.06.2018
12:46:39

Artur
14.06.2018
12:46:50

George
14.06.2018
12:46:57

Алексей
14.06.2018
12:47:12

George
14.06.2018
12:47:21
Чем unknown от undefined отличается?
и от void

Artur
14.06.2018
12:47:50

George
14.06.2018
12:48:18
ну never вроде выделяется

Google

George
14.06.2018
12:48:21
из списка
null тоже
а вот остальные три..

Artur
14.06.2018
12:48:42
undefined тоже
он как null
Только undefined

Дмитрий
14.06.2018
12:48:49

Artur
14.06.2018
12:49:17

Дмитрий
14.06.2018
12:49:27
never → unknown типа ок

Artur
14.06.2018
12:49:55
Чисто теоретически же имеет право на существование такой тип данных? Ну то, что в TS называют open ended tuple. Как его православно назвать?

Дмитрий
14.06.2018
12:50:50
Нет, не имеет, я серьёзно)
N-tuple это ведь
То что сейчас сделали это мб массив какой нибудь или что то в этом духе

Олег
14.06.2018
12:51:33
как только не старался))
https://github.com/NetanelBasal/ngx-take-until-destroy/blob/master/src/take-until-destroy.ts#L22-L32 а так

Artur
14.06.2018
12:52:03
У него и длина была

Дмитрий
14.06.2018
12:52:19
Я даже специально перепроверил, даже C# декларирует tuple как полагается н-арными
Просто на этом он как тупл реально заканчивается, теперь это что угодно но нетупл

George
14.06.2018
12:53:53

Google

Artur
14.06.2018
12:53:55

Дмитрий
14.06.2018
12:54:33
Можно, но это не будет tuple а чем нибудь более подходящим, типа array
Tuple нет, нельзя , там такой тип сразу создаётся фиксированным
Проблемы не будет если явно задекларировать что это новый тип данных в тс и отделить от синтаксиса туплов, но тот злополучный пр делает ровно противоположное
По сути проблему сделали на ровном месте, ничего не вынуждало портить tuple, тут даже рациональной причины никакой нет; просто автор не подумал про это и из всех вариантов реализации очередной фичи выбрал крайне неудачный

Vladimir
14.06.2018
13:10:12

Дмитрий
14.06.2018
13:20:08
Как?
Явно добавив массив как элемент

Vladimir
14.06.2018
13:20:34
Это не тоже самое

Дмитрий
14.06.2018
13:20:40
Естественно
Что только подтверждает тот факт что c# декларирует Tuple н-арным и подобной фигни не позволяет

Vladimir
14.06.2018
13:23:08
Что потверждает, что там нет такой фичи
Это просто фича, которой больше нигде нет

Дмитрий
14.06.2018
13:23:30
Это что угодно но не tuple
Tuple по определению имеет фиксированный размер
Я не против фичи, я против того, что теперь смешаны два откровенно разных типа данных

Vladimir
14.06.2018
13:25:02
Ну открой issue чтобы поменяли название

Дмитрий
14.06.2018
13:26:16
Это не поможет, потому что они смешаны на уровне синтаксиса

Vladimir
14.06.2018
13:26:41
просто не будет туплов
их же нет, на самом деле

Дмитрий
14.06.2018
13:27:12

Google

Vladimir
14.06.2018
13:27:26
Ну и? Какая разница

Дмитрий
14.06.2018
13:33:40
Обращение по индексу в туплах было безопасным

Александр
14.06.2018
13:34:11
уже месяц вижу как тут спорят о туплах, что это хоть такое, для чего используется?

Дмитрий
14.06.2018
13:34:29
Кортежи фиксированной длины

Сергей
14.06.2018
13:34:31

Александр
14.06.2018
13:34:43
В универе что-то рассказывали

Сергей
14.06.2018
13:36:01
Кортеж (информатика) — Википедия
ru.wikipedia.org
Кортеж — упорядоченный набор фиксированной длины. Пусть даны множества. , не обязательно различные. Тогда корте́ж длины n, упорядоченный набор длины n, упорядоченный n-набор или n-ка — упорядоченная последовательность из n элементов. где. для.

Vladimir
14.06.2018
13:37:58

Дмитрий
14.06.2018
13:39:08
?

George
14.06.2018
13:40:05
Можно ли в тайпскрипте делать что-то такое?
interface A<T> {
fun<T extends A<K>>(): A<T|K>;
}

Дмитрий
14.06.2018
13:40:14
Вот только косяки с сабтайпингом открывает большие возможности для выстрела себе в ногу

Vladimir
14.06.2018
13:40:45
Есть примеры?

kana
14.06.2018
13:51:09

Oleg
14.06.2018
13:51:39
так они давно ж там есть? не?

Anton
14.06.2018
14:05:58
unknown ещё нету, только в мастер недавно заехал. Как по мне, в PR весьма чётко расписано, что и зачем, нормальный новый тип. Его скорее не с void и never сравнивать надо, а c any.

Aleh
14.06.2018
14:07:55
unknown не хватало да

Сергей
14.06.2018
14:17:20
жесть
тс однозначно пизда
void, never, unknown, any, …
сколько нужно ещё обозначений чтобы разрабы тс успокоились?

Oleg
14.06.2018
14:18:15
все равно лучше чем флоу)