akr*_*nah 5 generics types typescript arrow-functions typescript-generics
好的,我有以下场景:
type IHashFn = (arg: string) => number;
const hash: IHashFn = (arg) => {
return 42;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。现在我希望该函数是通用的。
const hash: <T> (arg: T) => number = (arg) => {
return 42;
}
Run Code Online (Sandbox Code Playgroud)
这样可行。但这并没有:
type IHashFn<T> = (arg: T) => number;
const hash: <T> IHashFn<T> = (arg) => {
return 42;
}
Run Code Online (Sandbox Code Playgroud)
我发现没有办法让 TS 编译器平静下来。使用接口而不是类型别名也不起作用。
注意:我不想成为通用hash的实现。IHashFn<string>
有没有办法在 TypeScript 中声明泛型函数类型或接口?
您实际上并没有对通用参数做任何事情。
但听起来您想要一个泛型函数,而不是泛型类型别名。因此,将其保留在函数中,而不是类型别名中。
type IHashFn = <T>(arg: T) => number;
const hash: IHashFn = (arg) => {
return 42;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3491 次 |
| 最近记录: |