MST

星途 面试题库

面试题:TypeScript函数类型定义中的条件类型与映射类型深度应用

定义一个TypeScript函数,它接收一个对象作为参数,该对象的属性值可以是任意类型。函数需要返回一个新对象,新对象的属性与原对象相同,但属性值类型变为原类型的数组形式。例如,原对象为 {a: 1, b: 'hello'},返回 {a: [1], b: ['hello']}。请使用条件类型和映射类型来准确地定义函数的参数和返回值类型,且尽可能地做到类型的通用与严谨。
28.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function transformObject<T extends Record<string, any>>(obj: T): {
    [K in keyof T]: T[K] extends Array<any> ? T[K] : [T[K]];
} {
    const result: any = {};
    for (const key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
            result[key] = Array.isArray(obj[key]) ? obj[key] : [obj[key]];
        }
    }
    return result;
}