Typescrit从入门到放弃系列(十一)-交叉类型

交叉类型(Intersection Types)是将多个类型合并为一个类型markdown

interface Person1 {
  handsome: string;
}
interface Person2 {
  high: string;
}
type P1P2 = Person1 & Person2;
let p: P1P2 = { handsome: "帅", high: "高" };
复制代码

举例:咱们提供两拨人,一拨人都很帅、另外一拨人很高。咱们但愿找到他们的交叉部分 => 又高又帅的人ui

  • 交叉类型
function mixin<T, K>(a: T, b: K): T & K {
  return { ...a, ...b };
}
const x = mixin({ name: "james" }, { age: 18 });
复制代码
interface IPerson1 {
  name: string;
  age: number;
}

interface IPerson2 {
  name: number;
  age: number;
}
type person = IPerson1 & IPerson2;
let name!: never;
let person: person = { name, age: 18 }; // 两个属性之间 string & number的值为never
复制代码
相关文章
相关标签/搜索