在 TypeScript 中分离函数的通用类型定义?
Separating generic type definition of function in TypeScript?
例如,在Haskell中,对每个类型和函数都有相应的独立定义是定义函数的标准方式。
Haskell中id
的定义是:
id :: forall a. a -> a
id = \a -> a
在 TypeScript 中,我们可以这样写
const id = <T>(a: T) => a;
但很多时候,我想以Haskell的方式进行类似的定义。
type id<T> = (a:T) => T
const id:id<T> = a => a;
这会产生错误:找不到名称 'T'.ts(2304)
请注意:
我知道下面的代码有效,
type id<T> = (a: T) => T
const id: id<number> = a => a;
但我的问题是
const id = <T>(a: T) => a;
有没有合适的分离方式写法?
TypeScript 版本 4.5.5
type id = <T>(a: T) => T
const id: id = a => a;
例如,在Haskell中,对每个类型和函数都有相应的独立定义是定义函数的标准方式。
Haskell中id
的定义是:
id :: forall a. a -> a
id = \a -> a
在 TypeScript 中,我们可以这样写
const id = <T>(a: T) => a;
但很多时候,我想以Haskell的方式进行类似的定义。
type id<T> = (a:T) => T
const id:id<T> = a => a;
这会产生错误:找不到名称 'T'.ts(2304)
请注意:
我知道下面的代码有效,
type id<T> = (a: T) => T
const id: id<number> = a => a;
但我的问题是
const id = <T>(a: T) => a;
有没有合适的分离方式写法?
TypeScript 版本 4.5.5
type id = <T>(a: T) => T
const id: id = a => a;