const example = <a, b> (o: (a) => b, c: (b) => a) => {

}

example(() => 1, (n) => n)

Я ищу n, чтобы быть назначенным на номер, но я не получаю предупреждения.

0
ThomasReggi 26 Сен 2019 в 00:54

1 ответ

Лучший ответ

Играя с этим на игровой площадке Tymdercript, я придумал следующее, что, кажется, решает типы, как вы ожидаете:

const example = <a, b>(o: ((arg1: a) => b), c: ((arg2: b) => a)) => {}

example(() => 1, (n) => n);

Здесь есть две различия:

  1. Я завернул типы аргументов {example в скобках, чтобы сделать их немного более четкой (по крайней мере, в моих мыслях - у меня возникли проблемы с обертыванием головы вокруг функций внутри функций), а также
  2. Я добавил имена аргументов (arg1 и arg2)

Я разумно уверен, что это то, что вы предполагаете - я считаю, что выражение типа функции требует имен аргументов. Например, следующие результаты в «параметре» есть имя, но нет типа. Вы имели в виду «ARG0: A»? » Ошибка на детской площадке:

type f1 <a, b>(a) => b;
2
Kryten 25 Сен 2019 в 22:18