MST

星途 面试题库

面试题:TypeScript 类型保护与类型推断在泛型和条件类型结合场景下的应用

编写一个泛型函数 `processValue`,它接受两个类型参数 `T` 和 `U`。如果 `T` 是 `string` 类型,并且 `U` 是 `number` 类型,返回 `T` 的长度与 `U` 的乘积;如果 `T` 是 `number` 类型,并且 `U` 是 `string` 类型,返回 `T` 与 `U` 长度的和;在其他情况下,返回 `null`。请充分利用类型保护和类型推断来实现这个函数,并确保类型安全。
38.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function processValue<T, U>(arg1: T, arg2: U): number | null {
    if (typeof arg1 ==='string' && typeof arg2 === 'number') {
        return arg1.length * arg2;
    } else if (typeof arg1 === 'number' && typeof arg2 ==='string') {
        return arg1 + arg2.length;
    }
    return null;
}