MST
星途 面试题库

面试题:TypeScript 联合类型与交叉类型在复杂场景中的运用

现有两个接口 `A` 和 `B`,`A` 有属性 `a: string`,`B` 有属性 `b: number`。定义一个函数 `combine`,它接收两个参数,第一个参数类型为 `A | B`,第二个参数类型为 `A & B`。函数内部需要根据第一个参数的实际类型来进行不同的操作:如果是 `A` 类型,就将 `a` 属性和 `B` 类型中 `b` 属性的值拼接成字符串返回;如果是 `B` 类型,就将 `b` 属性和 `A` 类型中 `a` 属性的长度相加返回。请用 TypeScript 实现这个函数。
43.4万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface A {
    a: string;
}

interface B {
    b: number;
}

function combine(arg1: A | B, arg2: A & B): string | number {
    if ('a' in arg1) {
        return arg1.a + arg2.b.toString();
    } else {
        return arg1.b + arg2.a.length;
    }
}