interface ObjType {
a:string;
b:number;
c:()=>void;
}
const obj:ObjType = {
a:"1",
b:2,
c:()=>{
console.log(3)
}
}
获取单个
const get = <T extends keyof ObjType>(key: T): ObjType[T] => {
return obj[key]
}
let res = get("a"); //"1"
获取多个
const gets = <Key extends keyof ObjType>(keys: Key[]): { [K in Key]: ObjType[K] } => {
let result = {} as { [K in Key]: ObjType[K] };
keys.map(key=>{
if((obj as Object).hasOwnProperty(key)){
result[key] = obj[key];
}
})
return result
}
let res2 = gets(["a","c"]);
res2.c(); //3