@alekcena
Нелинейный наставник

Можно ли сделать перегрузку функции с помощью типа?

Проблематика.
Хочу удобный автокомплит.
Который можно сделать динамически, без использования перегрузок, как в примере ниже.
Суть вопроса. Можно ли сделать то-же самое используя дженерик.
type TMap = {
  key1: {
    value1: string;
  };
  key2: {
    value2: boolean;
  }
}

type FunctionOverload = {
  (eventName: 'key1', params: TMap['key1']): Promise<void>;
  (eventName: 'key2', params: TMap['key2']): Promise<void>;
};

Пример попытки.
При попытке сделать динамически. Выбор происходит из всех значений. Пример ниже.
type FunctionDinamicParams = (eventName: keyof TMap, params: TMap[keyof TMap]) => Promise<void>
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
type FunctionDinamicParams = <T extends keyof TMap>(eventName: T, params: TMap[T]) => Promise<void>;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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