Typescript — Извлекает возвращаемый тип из внутренней функции

#typescript

Вопрос:

Можно ли получить тип возвращаемой функции, которая возвращает другую функцию?

 const creator = (deps: CreatorDependencies) => () => {
  return {
    foo: 1,
    bar: 2,
  };
}
 

Я ожидаю получить это

 { foo: number; bar: number; }
 

Комментарии:

1. Какой ожидаемый результат для приведенного выше кода?

2. @AlirezaAhmadi Я обновил вопрос этим, спасибо!

Ответ №1:

Это пример использования утилиты TypeScript ReturnType<Тип><Тип>.

 type CreatorReturn = ReturnType<ReturnType<typeof creator>>
 

ReturnType<typeof creator> дает вам тип функции, возвращающей ваш объект, а перенос ее в другой ReturnType<> дает вам необходимый тип объекта.

Комментарии:

1. Я совсем забыл, что могу вложить тип возврата, спасибо!