在打字稿中做以下操作会遇到麻烦.我定义了以下接口:
interface RendererCallback {
getNode():HTMLElement;
getTable();
}
Run Code Online (Sandbox Code Playgroud)
有一种方法期待RenderCallback对象,如:
render( callback:RendererCallback )
Run Code Online (Sandbox Code Playgroud)
如何在代码中间创建匿名实例:
myObject.render( new .. {
getNode() {
return myNode;
}
getTable() {
.. some code...
return something;
}
} );
Run Code Online (Sandbox Code Playgroud)
您可以使用匿名对象和lambda:
myObject.render({
getNode: () => { doSomething...; return myNode },
getTable: () => myTable
});
Run Code Online (Sandbox Code Playgroud)
注意,new不使用关键字.
小智 6
Typescript 现在支持类表达式,因此您可以创建实际的匿名类。
myObject.render( new class {
getNode() {
return myNode;
}
getTable() {
.. some code...
return something;
}
} );
Run Code Online (Sandbox Code Playgroud)
这样做的好处是this不会被推断为位于any匿名类的方法内。
| 归档时间: |
|
| 查看次数: |
11502 次 |
| 最近记录: |