169 похожих чатов

Как назвать класс функций/категорию которая принимает агрумент того же типа

что и возвращает?
я тут играюсь с примеров из доклада Климова https://www.youtube.com/watch?v=etKOc80-cw0&list=PL8sJahqnzh8JDxXLMtn3EWmZWiBATL9Xu&index=24 и пытаюсь его починить
фактически едиснственное что ТС не может раздуплить это пронести отношение входящего аргумента с исходящему
const promisify = <I, O>(fun: (a: I) => O): (a: I) => Promise<O> =>
a => Promise.resolve(fun(a));

const track = <T>(e: T): T => {
console.log(e);
return e;
}

const promisifiedTrack = promisify(track)// as <T>(a: T) => Promise<T>;
const foo = { bar: 1 }
promisifiedTrack(foo).then(x => x.bar);

если раскомментить assertion то все начнет работать так как надо
я пытаюсь сформулировать как называются такие отношения чтобы погуглить что теория типов на это говорит
https://www.typescriptlang.org/play/#src=const%20promisify%20%3D%20%3CI%2C%20O%3E(fun%3A%20(a%3A%20I)%20%3D%3E%20O)%3A%20(a%3A%20I)%20%3D%3E%20Promise%3CO%3E%20%3D%3E%0D%0A%20%20%20%20a%20%3D%3E%20Promise.resolve(fun(a))%3B%0D%0A%0D%0Aconst%20track%20%3D%20%3CT%3E(e%3A%20T)%3A%20T%20%3D%3E%20%7B%0D%0A%20%20%20%20console.log(e)%3B%0D%0A%20%20%20%20return%20e%3B%0D%0A%7D%0D%0A%0D%0Aconst%20promisifiedTrack%20%3D%20promisify(track)%2F%2F%20as%20%3CT%3E(a%3A%20T)%20%3D%3E%20Promise%3CT%3E%3B%0D%0A%0D%0Aconst%20foo%20%3D%20%7B%20bar%3A%201%20%7D%0D%0A%0D%0ApromisifiedTrack(foo).then(x%20%3D%3E%20x.bar)%3B

1 ответов

19 просмотров

Um identity?

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта