美文网首页
TS类型合并

TS类型合并

作者: 蓝蓝红同学 | 来源:发表于2022-10-26 09:57 被阅读0次

    类型合并

    type aType = { a: string, c: boolean }
    type bType = { b: number, c: boolean }
    // 合并类型,使用&进行类型的合并
    type cType = aType & bType
    
    const cs: cType = {
        a: 'sss',
        b: 123,
        c: true
    } // 无报错
    

    同名属性合并问题

    合并类型中存在同名属性时,若该同名属性类型一样,则取相同值,若同名属性类型不一致,合并后该属性为never

    type aType = { a: string, c: string }
    type bType = { b: number, c: number }
    
    type cType = aType & bType
    
    const cs: cType = {
        a: 'sss',
        b: 123,
        c: 'sss',   // error (property) c: never
        c: 123     // error (property) c: never
    }
    
    报错信息

    合并后的c类型应该是 string & number,不存在这种类型,即为never

    相关文章

      网友评论

          本文标题:TS类型合并

          本文链接:https://www.haomeiwen.com/subject/rlmugrtx.html