MST

星途 面试题库

面试题:TypeScript精确变体在复杂数据结构中的应用

假设有一个复杂的嵌套数组,数组元素类型可能是`string`、`number`、`boolean`或者包含这些类型的对象数组,并且该数组可能存在`null`值。请使用TypeScript的更精确any变体(如`unknown`等)来定义这个数组的类型,并编写一个函数,该函数能够遍历这个数组,对每个非`null`值进行类型检查和特定处理(例如,若为`string`则转为大写,若为`number`则平方,若为对象数组则打印其长度),要求代码具有良好的类型安全性。
43.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义复杂嵌套数组类型
type ComplexNestedArray = (string | number | boolean | ComplexObjectArray | null)[];
type ComplexObjectArray = (string | number | boolean)[];

function processArray(arr: ComplexNestedArray): void {
    arr.forEach((element) => {
        if (element!== null) {
            if (typeof element ==='string') {
                console.log(element.toUpperCase());
            } else if (typeof element === 'number') {
                console.log(element * element);
            } else if (Array.isArray(element)) {
                console.log(element.length);
            } else if (typeof element === 'boolean') {
                console.log(element);
            }
        }
    });
}

你可以使用以下方式调用这个函数:

const testArray: ComplexNestedArray = ['hello', 5, true, [1, 2, 3], null];
processArray(testArray);