【发布时间】:2020-08-10 05:09:32
【问题描述】:
据我研究,如果你想将一个函数作为参数传递并用作回调,你需要在方法中引入回调函数将要使用的所有参数,然后再一次那些相同的参数,当你在参数中定义回调函数的类型时,所以两次。
在我下面的代码示例中,两个星号之间的参数必须定义两次,因为大多数参数是针对回调函数的,在定义回调本身时必须再次定义回调函数的类型(参见最后一个参数回调函数):
keyBoardListenerSet: (**gl:WebGLRenderingContext**,
document:Document, **primitiveType: GLenum**,
**offset: number**, **count: number**, **program:WebGLProgram**,
pos: Float32Array, rot: Float32Array, anglesChanged: {x:boolean, y:boolean, z:boolean},
callbackFunc: (gl:WebGLRenderingContext, primitiveType: GLenum, offset: number,
count: number, program: WebGLProgram) => void): void => {
//really meaningful code
}
我试图通过已在变量中设置的参数来传递函数,并在我的函数中延迟执行以避免参数类型定义,但我认为这是不可能的(我是 Javascript 新手),所以如果这个是不可能的,有没有更简洁的方法在打字稿中使用回调函数作为参数(我的意思是,一种避免为回调函数中使用的同一参数设置两次类型的方法)?谢谢
【问题讨论】:
标签: typescript typescript-typings