function pluck<T, K extends keyof T>(o: T, names: K[]): T[K][] {
return names.map(n => o[n]);
}
interface Person {
name: string;
age: number;
}
let person: Person = {
name: 'Jarid',
age: 35
};
let strings: string[] = pluck(person, ['name']);
有一個疑問:K extends keyof T => type K = 'name' | 'age'
但是調用函數時 根據類型推斷 K[] => string[] => string
換句話說 K的類型是string
但是泛型裡面是聯合類型 所以
問題:這個K的類型怎麼理解
'name'[]
=> 为name字面量类型的数组