我试图保留回调的参数的类型信息,其中回调是通用的:
function Foo<Template>(argument: Template) {
// Do something with argument
}
function Bar(callback: Function) {
callback('something')
}
let x = Bar( Foo<String> )
这看起来不像有效的typescript语法。有什么办法吗?
答案 0 :(得分:4)
在这里扩展Rodrigo的答案。如果你有一个泛型函数:
function doSomething<T>(t: T): void {
console.log("oh " + t);
}
您可以按如下方式定义函数的类型:
type Handler = <T>(t: T) => void;
然后您可以使用类型Handler
作为函数参数:
function thisFirst(callback: Handler) {
callback<string>('boink');
}
thisFirst(doSomething)
答案 1 :(得分:0)
Function
是任何功能。尝试指定回调。
function Foo<Template>(argument: Template) {
// Do something with argument
}
function Bar(callback: { (argument: string) }) {
callback('something')
}
let x = Bar(Foo);