MST
星途 面试题库

面试题:TypeScript 类型守卫在机器学习前端类型接口中的应用

在机器学习前端,从服务器获取的数据可能存在多种格式,有时是符合预测结果接口的数据,有时是错误信息(包含 errorMessage string 字段)。请编写一个 TypeScript 类型守卫函数,用于判断接收到的数据是预测结果还是错误信息,并分别返回对应的类型。预测结果接口如中级题目中所定义。
23.4万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

假设预测结果接口定义如下(这里假设名为 PredictionResult):

interface PredictionResult {
    // 假设预测结果有个字段 result 为 string 类型
    result: string; 
}

类型守卫函数如下:

function isErrorInfo(data: any): data is { errorMessage: string } {
    return typeof data === 'object' && 'errorMessage' in data && typeof data.errorMessage ==='string';
}

function isPredictionResult(data: any): data is PredictionResult {
    return typeof data === 'object' &&'result' in data && typeof data.result ==='string';
}

你可以这样使用:

function handleData(data: any) {
    if (isErrorInfo(data)) {
        console.log(`错误信息: ${data.errorMessage}`);
    } else if (isPredictionResult(data)) {
        console.log(`预测结果: ${data.result}`);
    } else {
        console.log('数据格式不匹配');
    }
}