前言:在编写 typescript 应用的时候,有时候我们会希望复用或者构造一些特定结构的类型,这些类型只从 typescript 靠内建类型和 interface、class 比较难以表达,这时候我们就需要用到类型推导。
keyof
在 typescript 我们可以用 keyof 关键字来提取对象的索引标记.
// obj 是一个对象, typeof 得到了其类型
keyof (typeof obj)
对象的 string 和 number 索引
对于 es5 而言,毋庸置疑一个对象(hash dictionary)的索引只可能是 string 和 number 两种类型;
// One simiple object with any type key-value
interface Foo {
[k: string]: any