export {}
interface Types {
A: 'A'
B: 'B'
}
type GetType = <K extends keyof Types> (k: K) => K
let f: GetType = k => k
f('A')
type ReturnType = <K extends keyof Types> () => K
let f2: ReturnType = () => 'A'
^^
为何 f2 处会出错:
[ts] 'f2' is declared but its value is never read.
[ts]
Type '() => "A"' is not assignable to type 'ReturnType'.
Type '"A"' is not assignable to type 'K'.
let f2: ReturnType