doo*_*glu 1 typescript typescript2.0
我已经声明了函数:
_translate(value: T, callback: (name: T) => T): void;
Run Code Online (Sandbox Code Playgroud)
函数是:
public _translate(value: T, callback: T) {
if (!this.translate) {
callback(value);
}
}
Run Code Online (Sandbox Code Playgroud)
如何调用(使用)它?我尝试了以下方法:
this._translate(value, function(data: T) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
这是行不通的
您没有在回调函数中返回任何内容,并且您没有尝试使用调用者的回调函数的结果......所以,看起来您应该将声明更改_translate为
_translate(value: T, callback: (name: T) => void): void;
Run Code Online (Sandbox Code Playgroud)
这意味着callback参数应该是一个接受类型输入T并且不返回任何内容的函数 ( void)。然后,您需要更改实现签名以匹配:
public _translate(value: T, callback: (name: T) => void): void {
if (!this.translate) {
callback(value);
}
}
Run Code Online (Sandbox Code Playgroud)
然后您应该能够_translate()作为类实例的方法进行调用,例如:
// class with _translate() method is MapperServiceArray<T>
const thingy = new MapperServiceArray<string>();
// call _translate on the object with a string and a callback that
// takes a string and does not return a value
thingy._translate("something", x => console.log(x.charAt(0)));
Run Code Online (Sandbox Code Playgroud)
现在我看到了您的代码片段,我可以建议进行一些更改以使其编译(某种程度上),但我真的不知道您要做什么。希望有一点帮助。祝你好运。
| 归档时间: |
|
| 查看次数: |
6698 次 |
| 最近记录: |