打字稿简单的通用推断问题

时间:2018-06-21 20:47:32

标签: typescript

这是怎么了?
ls -la /certs -rw-r--r--. 1 root root 1679 Jun 21 21:11 key.pem -rw-r--r--. 1 root root 451 Jun 21 21:11 key_pub.pem 不应该是be吗?

string

try it live

1 个答案:

答案 0 :(得分:1)

我不知道为什么,但是以某种方式TypeScript无法识别VvalueT类型之间的依赖关系。

在这种情况下,明确指出所需的类型来自T中成员的类型会有所帮助:

const valueGetter = <T extends {value: V}, V>(o: T) => ((): T['value'] => o.value) 
const myValueGetter = valueGetter({x:1, value:'a string'})  // const myValueGetter: () => string
const be = myValueGetter() // const be: string