MST

星途 面试题库

面试题:TypeScript泛型别名与条件类型及映射类型的综合运用

定义一个泛型别名`Optionalize`,它接受一个对象类型`T`作为泛型参数。使用条件类型和映射类型,将`T`中所有属性变为可选属性。然后定义一个函数`transformObject`,它接受一个满足`T`类型的对象,返回一个满足`Optionalize<T>`类型的对象,并且在转换过程中,如果原对象的某个属性值为`null`,则在新对象中该属性被移除。
48.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义泛型别名Optionalize,将T中所有属性变为可选属性
type Optionalize<T> = {
    [P in keyof T]?: T[P];
};

// 定义函数transformObject
function transformObject<T>(obj: T): Optionalize<T> {
    const result: any = {};
    for (const key in obj) {
        if (obj.hasOwnProperty(key) && obj[key]!== null) {
            result[key] = obj[key];
        }
    }
    return result;
}