MST

星途 面试题库

面试题:TypeScript 复杂类型保护与类型推断

假设你有一个复杂的联合类型,比如type ComplexType = { kind: 'A', value: number } | { kind: 'B', value: string } | { kind: 'C', value: boolean }。编写一个函数,该函数接收一个ComplexType类型的参数,在函数内部,通过类型保护和类型推断,分别处理不同kind值对应的value。要求在处理value时,TypeScript的类型检查能确保对不同类型的value进行正确的操作,例如对number类型的value进行数学运算,对string类型的value进行字符串拼接等。请展示完整的函数实现及相关类型定义。
41.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type ComplexType = 
  { kind: 'A', value: number } | 
  { kind: 'B', value: string } | 
  { kind: 'C', value: boolean };

function handleComplexType(data: ComplexType) {
    if (data.kind === 'A') {
        const result = data.value + 1;
        console.log(`处理类型A,结果: ${result}`);
    } else if (data.kind === 'B') {
        const result = data.value + '拼接的字符串';
        console.log(`处理类型B,结果: ${result}`);
    } else if (data.kind === 'C') {
        const result = data.value ? '真值' : '假值';
        console.log(`处理类型C,结果: ${result}`);
    }
}