MST

星途 面试题库

面试题:TypeScript类型守卫在复杂函数参数结构检查中的应用

定义一个函数`processData`,它接收一个复杂对象作为参数,这个对象可能有两种结构:{name: string, age: number} 或者 {email: string, phone: string}。请使用类型守卫在函数内部准确判断传入对象的结构,并进行相应的数据处理(例如:如果是第一种结构,打印姓名和年龄;如果是第二种结构,打印邮箱和电话)。
34.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function processData(data: {name: string, age: number} | {email: string, phone: string}) {
    if ('name' in data) {
        console.log(`姓名: ${data.name}, 年龄: ${data.age}`);
    } else {
        console.log(`邮箱: ${data.email}, 电话: ${data.phone}`);
    }
}

以上代码使用in操作符作为类型守卫,在processData函数内部判断传入对象的结构,并进行相应的数据处理。

请注意,上述代码基于TypeScript语言实现,如果你需要其他语言实现,请补充更多信息。