MST

星途 面试题库

面试题:TypeScript中如何将any类型缩小范围到更具体类型2

给定一个函数`processValue`,它接收一个`any`类型的参数`input`。你需要在函数内部判断`input`是否是一个包含`id`属性且`id`为数字类型,并且有`name`属性且`name`为字符串类型的对象。如果是,返回`name`属性值的长度加上`id`值;如果不是,返回 - 1。请用TypeScript实现该函数。
45.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function processValue(input: any): number {
    if (
        typeof input === 'object' &&
        'id' in input &&
        typeof input.id === 'number' &&
        'name' in input &&
        typeof input.name ==='string'
    ) {
        return input.name.length + input.id;
    }
    return -1;
}