MST

星途 面试题库

面试题:TypeScript 中如何利用交叉类型和泛型实现复杂类型组合

假设有两个接口,一个是`UserInfo`,包含属性`name: string`和`age: number`;另一个是`UserRole`,包含属性`role: string`。请使用交叉类型和泛型实现一个函数,该函数接收一个包含上述两种类型属性的对象数组,并返回一个新数组,新数组中的对象只保留`name`和`role`属性,要求使用TypeScript编写代码实现。
23.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface UserInfo {
    name: string;
    age: number;
}

interface UserRole {
    role: string;
}

function pickProperties<T extends UserInfo & UserRole>(arr: T[]): Pick<T, 'name' | 'role'>[] {
    return arr.map(item => ({ name: item.name, role: item.role }));
}