MST

星途 面试题库

面试题:TypeScript函数返回值类型推断在复杂逻辑中的应用

编写一个TypeScript函数,该函数接受一个字符串数组作为参数,如果数组中所有字符串长度都大于3,则返回数组的长度;如果有字符串长度小于等于3,则返回0。请详细阐述函数返回值的类型推断过程,以及如何处理可能出现的类型兼容性问题。
49.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function checkStringLength(arr: string[]): number {
    for (let str of arr) {
        if (str.length <= 3) {
            return 0;
        }
    }
    return arr.length;
}

函数返回值的类型推断过程

  1. 在TypeScript中,函数的返回值类型会根据return语句返回的表达式类型进行推断。
  2. 此函数有两个return语句,一个返回0,类型为number,另一个返回arr.lengtharrstring[]类型,其length属性也是number类型。
  3. 由于两个返回值类型都是number,TypeScript会自动推断该函数的返回值类型为number

处理可能出现的类型兼容性问题

  1. 参数类型兼容性:函数期望接受一个string[]类型的参数。如果传入其他类型的数组,比如number[],TypeScript会在编译阶段报错,提示类型不兼容。确保传入的参数是字符串数组可以避免此类问题。
  2. 返回值类型兼容性:由于函数返回值类型被推断为number,调用该函数的地方应按number类型来处理返回值。如果在调用处期望一个不同类型的值(如string),TypeScript同样会在编译阶段报错,提醒开发者注意类型不一致问题。