@romaro

Как типизировать зависимость вывода функции от типа аргумента?

Пробую так, но не работает:
type F = {
  (p1: string): string,
  (p1: number): number,
}

const fn: F = (p1: number) => { return ++p1 };

const a = fn(5);


Видимо, нужно использовать обобщенный тип, но не совсем понятно, как вынести это в самостоятельное описание типа (Type = {}):
function fn<T extends number | string>(p1: T): T { return p1 };
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 1
@awenn2015
Веб-программист самоучка
Может такой вариант подойдет?
type Example = <T = string | number>(arg: T) => T;

const FuncExample: Example = (arg) => {
  // Логика
  return arg
};

// type test = number
const test = FuncExample<number>(12);
Ответ написан
Ваш ответ на вопрос

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

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