交叉类型

71 阅读1分钟

交叉类型

交叉类型(Cross type)就是取多个类型的并集, 使用 & 符合定义, 被 & 符链接的多个类型构成的类型.如下:

    const merge = <T, U>(obj1: T, obj2: U): T & U => {
        // 指定返回值的类型兼备T和U两个类型变量代表的类型的特点
        let obj = {} as T & U
        obj = Object.assign(obj1, obj2)
        return obj
    }

    const obj1 = {
        name: "zzzhim"
    }

    const obj2 = {
        age: "22"
    }

    const obj = merge(obj1, obj2)
    console.log(obj.name) // zzzhim
    console.log(obj.age) // 22

从上面的函数返回值可以看出, 返回的对象既有 name 属性, 同时也拥有 age 属性.