我试图保留回调的参数的类型信息,其中回调是泛型:
function Foo<Template>(argument: Template) {
// Do something with argument
}
function Bar(callback: Function) {
callback('something')
}
let x = Bar( Foo<String> )
这看起来不像有效的类型脚本语法。有什么方法可以做到这一点吗?
我试图保留回调的参数的类型信息,其中回调是泛型:
function Foo<Template>(argument: Template) {
// Do something with argument
}
function Bar(callback: Function) {
callback('something')
}
let x = Bar( Foo<String> )
这看起来不像有效的类型脚本语法。有什么方法可以做到这一点吗?
4条答案
按热度按时间l7mqbcuq1#
扩展罗德里戈的答案在这里。如果你有一个通用的函数:
可以按如下方式定义函数的类型:
然后你可以使用类型
Handler
作为函数参数:gmxoilav2#
Function
是任何函数。请尝试指定回调。bmp9r5qi3#
你可以用一个泛型参数为callback定义一个泛型函数,如下所示:
ruarlubt4#
如果在代码中定义了带有回调参数的函数,其他答案也很有用。下面是更通用的解决方案,它总是有效的:
在上面的代码中,我们创建了一个新的匿名函数,该函数具有与回调函数相同的参数,调用指定类型的函数Foo,并返回Foo将返回的任何值。