TS类型合并

2022-10-26  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读