通常情况下,泛型函数的定义和调用方式如下所示:
有没有办法使用
例如,下面的代码可以正确编译,但是编译器会报错。
如果我删除类型参数,该函数将按预期工作,但我不会在
function identity<T>(arg: T): T {
return arg;
}
const id1 = identity<string>("hei");
有没有办法使用
function.bind()
,function.call()
或者 function.apply()
调用泛型函数?我该如何指定类型参数?例如,下面的代码可以正确编译,但是编译器会报错。
function boundIdentity<T>(this: T): T {
return this;
}
const id2 = boundIdentity.call<Object>({});
如果我删除类型参数,该函数将按预期工作,但我不会在
id2
上获得类型推断。
在Typescript Playground中查看