MST

星途 面试题库

面试题:TypeScript类型守卫在异步函数参数检查中的应用

假设有一个异步函数`fetchUserData`,它接收一个用户ID作为参数,要求使用TypeScript类型守卫确保传入的用户ID是有效的数字类型,然后从模拟的API获取用户数据(可以简单返回一个Promise.resolve模拟数据获取),请编写该函数及相关类型定义。
19.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义用户数据类型
type UserData = {
    id: number;
    name: string;
    // 其他用户相关属性
};

// 异步函数,接收用户ID并返回用户数据
async function fetchUserData(userId: unknown): Promise<UserData | null> {
    if (typeof userId === 'number' && Number.isInteger(userId) && userId > 0) {
        // 模拟从API获取数据
        return Promise.resolve({
            id: userId,
            name: 'Mock User'
        } as UserData);
    }
    return null;
}