Используя Typescript, как мне набрать функциональную функцию True? - PullRequest
1 голос
/ 02 апреля 2020

Для справки, я прохожу «Стаду функций» и прилагаю все усилия, чтобы преобразовать эти Javascript примеры в типизированный Typescript. См. https://github.com/glebec/lambda-talk/blob/master/src/index.js#L152 для справки. Функция True возвращает первый аргумент карри и игнорирует второй.

Рассмотрим следующий код Typescript:

interface ElsFn<T> {
  (els: unknown): T;
}

interface True extends Function {
  <T>(thn: T): ElsFn<T>;
}

// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
const T: True = (thn) => (_els) => thn;

console.log(T('true')('false'));

Предполагая, что я хочу сохранить «явный-возвращаемый-тип-функции» правило, как мне избавиться от комментария отключения ESLint? Другими словами, я хочу правильно ввести функцию True.

Мой редактор говорит мне, что проблема в части кода (_els) => thn. Его нужно как-то набирать.

enter image description here]

Что я могу сделать, чтобы установить тип возвращаемого значения или иным образом правильно набрать эту вещь, чтобы я не Нужно ли отключить правило ESLint?

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Вам все еще нужно указать обобщенные c аргументы и возвращаемые типы:

const T: True = <T_>(thn) => <T_>(_els):T_ => thn;
0 голосов
/ 02 апреля 2020
(_els): boolean => thn;

Может ли это сработать для вашего случая?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...