Я ищу возможность передать метод класса функции, которая затем может выполнить эту функцию в экземпляре этого класса. Что-то вроде этого псевдокода: (обратите внимание, что это абстрактный пример)
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
но это касается статических функций, которые я не хочу.