要捕获映射类型中的通用参数,可以使用泛型和类型推断来实现。下面是一个示例代码:
type MyMap = {
[key: string]: T;
};
function getValues(map: MyMap, key: K): T[K][] {
return Object.values(map).map(item => item[key]);
}
const myMap = {
a: { name: "Alice", age: 20 },
b: { name: "Bob", age: 30 },
c: { name: "Charlie", age: 40 },
};
const names = getValues(myMap, "name");
console.log(names); // Output: ["Alice", "Bob", "Charlie"]
在上面的代码中,我们定义了一个MyMap
类型来表示一个映射类型,它的键是字符串,值是泛型T
。然后,我们定义了一个getValues
函数,它接受一个MyMap
类型的参数和一个键名key
,并返回一个数组,包含了映射类型中所有对象的指定键的值。
在getValues
函数的实现中,我们使用了Object.values
方法来获取映射类型中所有的值,并使用map
方法来提取指定键的值。使用类型推断,我们可以确保返回的数组类型与指定键的值类型一致。
最后,我们创建了一个名为myMap
的映射类型对象,并调用getValues
函数来获取name
键的所有值,并将结果打印到控制台上。
上一篇:捕获一个字符串中的一个子字符串