MST

星途 面试题库

面试题:TypeScript 类型守卫之类型判断函数

请编写一个TypeScript类型判断函数,用于判断传入的参数是否是数组类型,并且数组中的元素都是数字类型。如果是则返回true,否则返回false。同时,请说明类型守卫在这个函数中的作用。
48.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function isNumberArray(arr: unknown): arr is number[] {
    return Array.isArray(arr) && arr.every((element) => typeof element === 'number');
}

类型守卫在这个函数中的作用

  1. 类型缩小:函数isNumberArray的返回类型arr is number[]是一个类型守卫。它能够在函数调用处缩小arr的类型。当调用isNumberArray并返回true时,TypeScript会知道arrnumber[]类型,而不是最初的unknown类型。这样在后续代码中使用arr时,TypeScript编译器就能基于这个缩小后的类型进行更准确的类型检查。
  2. 增强类型安全性:通过类型守卫,我们可以确保在使用arr时,它具有我们预期的结构和类型,避免了运行时因类型不匹配而导致的错误,提高了代码的健壮性。