выводился тип result (boolean)?
https://clck.ru/T77Jj
https://bit.ly/39GXhXm м?
Не, мне без хардкода надо, чтобы поддерживались все типы, в этом вся суть https://clck.ru/T77LT
всмысле хардкора? ты дженерик для чего сделал
Хардкода, не хардкора. Дженерик как раз для того и сделал, что бы не хардкодить типы, а поддерживать все возможные
Может, так: play.
Да, оно. Спасибо!
Можно даже сделать так , чтобы не дублировать ненужные пробрасывания
А подскажете, почему в данном случае на 24 строке дженерик T резолвится как undefined? https://clck.ru/T8gw2 Как пофиксить?
В типе Factory.create<S extends IStrategy<T>, T> тип-параметр T избыточен (его можно получить из типа-параметра S как ReturnType<S['execute']>), и на это же указывает неспособность TS вывести этот тип (T можно извлечь только из extends-ограничения на S, и с этим TS не всегда справляется). Соответственно, T можно убрать из типов-параметров, а в местах обращения к нему извлекать нужный тип из S: play.
Большое спасибо, что уделили время на ответ. Проблема в том, что в сендбоксе у меня упрощённый пример. В реальности у меня нет способа заменить дженерик на ReturnType или что-то такое. И мне надо как-то именно на дженериках это извлечь.
Обсуждают сегодня