Я пытаюсь привязать универсальную функцию к определенному контексту и параметру, однако я не могу найти правильный способ сделать это.
Вот мой код:
interface A {}
interface Repository<T> {
save(item: T): boolean;
}
const updater = <T>(repo: Repository<T>, item: T) => {
// do things and update
};
const items: A[] = [];
const repo: Repository<A> = {
save(item: A) {
/* do things */
return true;
}
}
items.forEach(updater<A>.bind(null, repo)); // Line with issue
Идея заключается в том, чтобы иметь универсальную функцию, которая принимает хранилище в качестве первого параметра, а при привязке создаст функцию, подходящую для использования в forEach.Однако я получаю ошибки типа ( expected
и cannot find name 'bind'
Я не совсем уверен, что там с моим синтаксисом что-то не так или я что-то упускаю.
Я также пытался:
updater.bind(null, repo)
Однако это не работает с опцией 3.2 strictBindCallApply
, поскольку он принимает параметр типа T={}
Кто-нибудь знает правильный способ сделать это?
Playground link