Я ищу возможность передать метод класса функции, которая затем может выполнить эту функцию в экземпляре этого класса. Что-то вроде этого псевдокода: (обратите внимание, что это абстрактный пример)
class Foo {
public somefunc() {
// do some
}
public anyfunc() {
// do any
}
}
function bar(obj: Foo ,func: "Foo.method") { // "that what im looking for"
obj.func();
}
bar(new Foo(), Foo.somefunc); // do some
bar(new Foo(), Foo.anyfunc); // do any
Есть ли возможность сделать это?
Я знаю, что мог бы сделать что-то вроде этого:
class Foo {
static somefunc(fooObj: Foo) {
// do some
}
static anyfunc(fooObj: Foo) {
// do any
}
}
interface func {
(fooObj: Foo);
}
function bar(obj: Foo, fn: func) {
fn(obj);
}
bar(new Foo(), Foo.somefunc); // do some
bar(new Foo(), Foo.anyfunc); // do any
но это касается статических функций, которые я не хочу.