169 похожих чатов

Ребят, подскажите по infer когда и как правильно его использовать?

Я пытался в доке TS найти инфу, но что-то понятного описания так и не нашёл.... Хотя часто в коде вижу его. Общее представление сложилось, что он извлекает тип из генерика. Но вот как правильно это использовать не вьеду.

Вот например этот код вроде работет, но написал его методом научного тыка

myFn<T extends MyType<any>, S = T extends MyType<infer S> ? S : never>(t: T): S {}

но не понимаю, почему именно так нужно писать
S = T extends MyType<infer S> ? S : never

В этом месте смущает T extends MyType<infer S>, когда мы перед этим указали что T extends MyType<any>

Можете разъяснить как это работает?

2 ответов

13 просмотров

Дока хлам, в release notes к версии где infer появилось будет получше описание

Когда вы пишете X extends Y ? T : F, тайпскрипт пытается натянуть сову (X) на глобус (Y), считая, что все места в Y, где вы указали infer, являются пропусками, которые надо заполнить. Если у вас одно имя в infer встречается в нескольких местах, тайпскрипт попробует вывести общий тип для этого имени на основе всех субтипов с левой стороны (в X), которые находятся на том же месте, что и субтип с infer в Y

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Карта сайта