美文网首页
TypeScript 之 索引类型

TypeScript 之 索引类型

作者: _一九九一_ | 来源:发表于2019-10-12 13:44 被阅读0次

从对象中获取几个需要的属性的值,然后建立一个集合

let obj = {
  a: 1,
  b: 2,
  c: 3
}

// 需要做的约束:keys里面的属性 一定是obj的属性
// K继承obj所有的属性的联合类型
// 函数返回值 是一个数组 数组元素类型是 属性K里面的类型
function getValue<T,K extends keyof T>(obj: T, keys: K[]):T[K][]{
  return keys.map(key => obj[key])
}
console.log(getValue(obj,['a','b']))
console.log(getValue(obj,['e','f']))  // 会报错

//keyof T: 索引类型的查询操作符 
//keyof T含义:表示类型T的所有公共属性的自变量的联合类型
interface Obj {
  a: number,
  b: string
}
let key: keyof obj

// T[K]: 索引访问操作符 表示对象T的属性K所表示的类型
// Obj里面的a是nuber类型 所以value就number类型
let value: Obj['a']

// T extends U: 泛型变量继承类型获取属性

相关文章

网友评论

      本文标题:TypeScript 之 索引类型

      本文链接:https://www.haomeiwen.com/subject/hxofmctx.html