Gar*_*art 8 typescript-generics typescript-typings typescript2.0
有什么技巧可以“评估”通用函数的类型吗?
考虑以下:
type Arr = <A>() => A[]
type Ev<G, A> = ???
Run Code Online (Sandbox Code Playgroud)
问:是否有可能来填补???这样Ev<Arr, A>等号() => A[]?(相比<A>() => A[])
所需行为的更多示例:
Ev<<A>() => A[], number>
// should evaluate to
// () => number[]
Ev<<A>() => string, number>
// should evaluate to
// () => string
Ev<<A>() => [string, A], { some: "thing" }>
// should evaluate to
// () => [string, { some: "thing" }]
Run Code Online (Sandbox Code Playgroud)
问题的简化版本是:我们可以定义
type EvNum<A> = ???
Run Code Online (Sandbox Code Playgroud)
以至于
EvNum<
<X>() => X
> // should be `number`
EvNum<
<X>() => X[]
> // should be `number[]`
EvNum<
<X>() => [X, "hi"]
> // should be `[number, "hi"]`
EvNum<
<X>() => SomeGenericType<X>
> // should be `SomeGenericType<number>`
EvNum<
<X>() => "constant"
> // should be `"constant"`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |