Ich suche nach einer Möglichkeit, eine Klassenmethode an eine Funktion zu übergeben, die dann diese Funktion für eine Instanz dieser Klasse ausführen kann. etwas wie der Pseudo-Code: (beachten Sie, dass dies ein abstraktes Beispiel)Klassenmethode als Parameter übergeben in Typescript
class Foo {
public somefunc() {
// do some
}
public anyfunc() {
// do any
}
}
function bar(obj: Foo ,func: "Foo.method") { // "that's what im looking for"
obj.func();
}
bar(new Foo(), Foo.somefunc); // do some
bar(new Foo(), Foo.anyfunc); // do any
Gibt es eine Möglichkeit, dies zu tun?
Ich weiß, dass ich so etwas tun könnte:
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
aber das beinhaltet statische Funktionen, die ich nicht will.
Ja, das funktionieren würde, aber ich würde nicht in den Genuss von Typoskript bekommen Überprüfen, ob 'someFunc()' tatsächlich auf 'Foo' definiert ist. – xDreamCoding