MST

星途 面试题库

面试题:TypeScript 类型保护与类型推断在复杂对象解构中的应用

假设有一个复杂对象,可能包含不同类型的属性,例如:`interface MyObject { prop1: string | number; prop2: { subProp: string | number }; }`。请编写代码,通过解构对象,并利用类型保护和类型推断,根据属性的实际类型进行不同的操作,比如当 `prop1` 是字符串时,将其转换为大写;当 `prop1` 是数字时,计算其立方;对于 `prop2.subProp` 也进行类似的根据类型不同的操作。
12.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface MyObject { 
    prop1: string | number; 
    prop2: { subProp: string | number }; 
}

function handleMyObject(obj: MyObject) {
    const { prop1, prop2: { subProp } } = obj;
    if (typeof prop1 ==='string') {
        console.log(prop1.toUpperCase());
    } else if (typeof prop1 === 'number') {
        console.log(prop1 ** 3);
    }

    if (typeof subProp ==='string') {
        console.log(subProp.toUpperCase());
    } else if (typeof subProp === 'number') {
        console.log(subProp ** 3);
    }
}

// 测试
const obj1: MyObject = {
    prop1: 'hello',
    prop2: { subProp: 5 }
};
handleMyObject(obj1);