面试题答案
一键面试假设预测结果接口定义如下(这里假设名为 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('数据格式不匹配');
}
}