typescript手册目前没有关于箭头函数的内容。正常的功能 可以使用以下语法进行泛型: 例子:
function identity<T>(arg: T): T {
return arg;
}
箭头函数的语法是什么?
typescript手册目前没有关于箭头函数的内容。正常的功能 可以使用以下语法进行泛型: 例子:
function identity<T>(arg: T): T {
return arg;
}
箭头函数的语法是什么?
当前回答
如果你在.tsx文件中,你不能只写<T>,但这是可行的:
const foo = <T, >(x: T) => x;
与extends{}攻击不同,这种攻击至少保留了意图。
其他回答
这对我很有用
const Generic = <T> (value: T) => {
return value;
}
我觉得上面的例子令人困惑。 我正在使用React和JSX,所以我认为它使场景复杂化。
我从TypeScript Deep Dive中得到了澄清,它声明了箭头泛型:
解决方法:在泛型参数上使用扩展来提示编译器它是一个泛型,这来自一个更简单的例子,帮助了我。
const identity = < T extends {} >(arg: T): T => { return arg; }
这么晚了,但与ES6不需要扩展它仍然为我工作....:)
let getArray = <T>(items: T[]): T[] => {
return new Array<T>().concat(items)
}
let myNumArr = getArray<number>([100, 200, 300]);
let myStrArr = getArray<string>(["Hello", "World"]);
myNumArr.push(1)
console.log(myNumArr)
添加多个依赖泛型类型的示例:
这个函数,转换为箭头函数,如下所示:
http.get = function <T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R> {
config.withCredentials = true;
....
};
注意这里的扩展号代替了等号:
http.get = async <T extends any, R extends unknown = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R> => {
config.withCredentials = true;
...
};
2021年,Ts 4.3.3
const useRequest = <DataType, ErrorType>(url: string): Response<DataType, ErrorType>
=> {
...
}