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
网友评论