typescript手册目前没有关于箭头函数的内容。正常的功能 可以使用以下语法进行泛型: 例子:
function identity<T>(arg: T): T {
return arg;
}
箭头函数的语法是什么?
typescript手册目前没有关于箭头函数的内容。正常的功能 可以使用以下语法进行泛型: 例子:
function identity<T>(arg: T): T {
return arg;
}
箭头函数的语法是什么?
当前回答
这对我很有用
const Generic = <T> (value: T) => {
return value;
}
其他回答
这对我很有用
const Generic = <T> (value: T) => {
return value;
}
我知道我回答这个问题有点晚了。但我想到了回答这个问题,以防其他人发现它有帮助。没有一个答案提到如何在异步箭头函数中使用泛型。
是这样的:
const example = async <T> (value: T) => {
//awaiting for some Promise to resolve or reject;
const result = await randomApi.getData(value);
}
Edit
根据@Thomas的评论,在更新的TS编译器中,我们可以简单地做:
const foo = <T,>(x: T) => x;
原来的答案
完整的例子解释了Robin引用的语法…带回家给我:
通用函数
像下面这样的东西是可以的:
function foo<T>(x: T): T { return x; }
然而,使用箭头泛型函数将不会:
const foo = <T>(x: T) => x; // ERROR : unclosed `T` tag
解决方法:在泛型参数上使用扩展来提示编译器 它是通用的,例如:
const foo = <T extends unknown>(x: T) => x;
这对我很有用
const logSomething = <T>(something:T): T => {
return something;
}
虽然使用extends{}的流行答案是有效的,而且比扩展任何答案都好,但它迫使T成为一个对象
const foo = <T extends {}>(x: T) => x;
为了避免这种情况并保持类型安全,可以使用extends unknown代替
const foo = <T extends unknown>(x: T) => x;