// 交叉类型 &
interface OneType {
age: number
}
interface TwoType {
name: string
}
type ThreeType = OneType & TwoType
// 使用交叉类型后,新的类型 ThreeType就同时具备了OneType 和 TwoType 的所有属性类型
let obj: ThreeType = {
age: 15,
name: 'james'
}
console.log(obj)
// 交叉类型(&)和接口继承(extends)的对比:
// 相同点:都可以实现对象类型的组合。
// 不同点:两种方式实现类型组合时,对于同名属性之间,处理类型冲突的方式不同
interface Ttype {
fn(f: number): void
}
interface Ytype {
fn(f: string): void
}
interface Stype extends Ttype { //报错:接口“Stype”错误扩展接口“Ttype”。 属性“fn”的类型不兼容
fn(f: string): void
}
type Btype = Ttype & Ytype // 不会报错 这里的整合相同属性参数 Btype = { fn(f: string | number): void }
const aObj:Btype = {
fn(f) {
console.log(f)
}
}
aObj.fn('a')
aObj.fn(5)
aObj.fn(false) // 报错
交叉类型
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、混入(mixins) mixins 混入可以理解为扩展,把本来不属于自己的东西硬生生的给弄到自己身上,在 Ty...
- 交叉类型 使用&关键字,取并集 对于分页业务中的ajax请求可以这样取定义参数类型 索引类型 通过keyo...
- 交叉类型 格式: type1 & type2 & ... 交叉类型是将多个类型合并为一个类型 联合类型 格式: ...