typeScript用的交叉类型和联合类型

文章描述

typeScript用的交叉类型和联合类型, ts,typescript中的&和|

这两个类型概念可以用交集和并集的思维来理解。(PS:非常重要!先抛开数学集合中的交集和并集概念,网上大多的文章话不多说直接摆出数学集合中的概念其实是一种误导)

 

交叉类型(&): 所有项都必须要满足

错误例子:

interface DataA { 
    title: string; 
    subTitle: string;
}
interface DataB { 
    url: string; 
    count: number
}
const data: DataA & DataB = { title: 'hello', subTitle: 'world',}

编辑器错误如下

正确如下:

const data: DataA & DataB = { 
    title: 'hello', 
    subTitle: 'world', 
    url: 'www.l5e.cn', 
    count: 0,
}

联合类型(|): 只有满足其中一项即可

错误例子

interface DataA {
 title: string;
 subTitle: string;
}

interface DataB {
 url: string;
 count: number
}

const data: DataA|DataB = {
 title: 'hello',
}

编辑器错误如下

 

正确应该要同时有title和subTitle

const data: DataA|DataB = {
 title: 'hello',
 subTitle: 'world'
}

 

评论(共0条)