我觉得我在打字稿中传递函数错误。 我总是写一些像:
var somefunc = (p1, p2, p3, p4) => { thatfunc(p1,p2,p3,p4) };
在普通的javascript中,我会这样做:
var somefunc = thatfunc;
参数名称越长,这就变得非常笨拙且写得很长,所以我想知道是否有更好的选择。
示例:
class A {
public foo = "bar";
public thatfunc(x, y, z) {
console.log(this.foo);
}
}
class B {
var somefunc;
var a;
constructor() {
this.a = new A();
this.somefunc = this.a.thatfunc
}
}
var b = new B();
b.somefunc("x", "y", "z") //will error undefined foo
class B {
var somefunc;
var a;
constructor() {
this.a = new A();
this.somefunc = (x, y ,z) => { this.a.thatfunc(x,y,z) }
}
}
var b = new B();
b.somefunc("x", "y", "z") // will work displays "bar"
答案 0 :(得分:2)
this.somefunc = this.a.thatfunc
简单地说:
this.somefunc = this.a.thatfunc.bind(this.a);
或者:
public thatfunc = (x, y, z) => {
console.log(this.foo);
}
在普通的javascript中,我会这样做:
不正确。在这种情况下,TypeScript 是 JavaScript。