MST

星途 面试题库

面试题:TypeScript联合类型的复杂错误预防

有一个联合类型`let data: (string | number)[];`,数组中的元素可能是字符串或数字。编写一个函数,将数组中的所有元素转换为数字。如果某个元素无法转换为数字(比如字符串不是纯数字组成),要捕获这个错误并记录下来(可以使用console.log记录),最后返回转换后的数字数组。请使用TypeScript实现,并且要合理利用类型守卫和错误处理机制。
46.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function convertToNumbers(data: (string | number)[]): number[] {
    const result: number[] = [];
    data.forEach((element) => {
        if (typeof element === 'number') {
            result.push(element);
        } else {
            const num = Number(element);
            if (isNaN(num)) {
                console.log(`无法将 ${element} 转换为数字`);
            } else {
                result.push(num);
            }
        }
    });
    return result;
}