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
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.