我正在尋找將類方法傳遞給函數的可能性,然後該函數可以在該類的一個實例上執行該函數。 類似的東西僞代碼:(注意,這是一個抽象的例子)在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
是否有成爲了可能做到這一點?
我知道我可以做這樣的事情:
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
,但涉及我不想靜態函數。
是啊,那會的工作,但我不會打字稿的好處檢查'Foo'上是否實際定義了'someFunc()'。 – xDreamCoding