美文网首页前端开发那些事儿
TS 联合类型和交叉类型

TS 联合类型和交叉类型

作者: 弱冠而不立 | 来源:发表于2021-03-09 17:41 被阅读0次

联合类型

通过 | 将变量设置多种类型,赋值时可以根据设置的类型来赋值。
举例说明:

  • 联合基础类型
let age: number | string;
age = 10; //OK
age = "12"; //OK
age = true; //Error
  • 联合对象类型
interface Cat {
    name: string
    miao:() => string
  }
  
  interface Dog {
    name: string
    wang: () => string
  }
  
  const Animal = (): Cat | Dog => {
      return {
          name: "",
          miao: ():string => {return "2333"}
      }
  }
  let obj = Animal();
  obj.name; //ok
  obj.miao() //Error , Property 'miao' does not exist on type 'Dog'

可以看到,联合基础类型的时候只要符合定义类型时的其中一个就可以了。然而联合复杂类型,如接口时,你可以只满足某一个接口的属性,但获取时,只能获取到复杂类型的公共属性,不同的属性是会报错的。

交叉类型

多种类型的集合,交叉的对象将具有所有类型的所有成员

interface Cat {
    name: string
    miao:() => string
  }
  
  interface Dog {
    name: string
    wang: () => string
  }
  
  const Animal = (): Cat & Dog => {
      return {
          name: "",
          // 使用交叉类型之后,就要两个接口所有的属性都得满足
          miao: ():string => {return "miaomiao"},
          wang: ():string => {return "wangwang"}
      }
  }
  let obj = Animal();
  obj.name; //ok
  obj.miao() //ok

相关文章

  • TS 联合类型和交叉类型

    联合类型 通过 | 将变量设置多种类型,赋值时可以根据设置的类型来赋值。举例说明: 联合基础类型 联合对象类型 可...

  • ts中的交叉类型和联合类型

    1.交叉类型将多个类型合并成一个类型,该类型具有所有类型的特性(取他们类型的合集) 2.联合类型相当于取他们类型的...

  • lesson 4 TS 2021-04-23

    课程标题 路白-TS实战 知识点 基础知识 enum 枚举类型 type interface 联合类型 | 交叉类...

  • typeScript语法

    ts类型 ts联合类型使用或 ts定义任意类型any ts定义函数返回值的类型 ts中的类定义 interface接口

  • TypeScript 08 - 高级类型

    交叉类型 联合类型 类型保护 可以为 null 的类型 字符串字面量类型 1. 交叉类型 交叉类型是将多个类型合并...

  • 03|typescript高级用法

    一、交叉类型 交叉类型取所有类型的并集 二、联合类型 声明的类型不确定,是多个类型中的一个联合类型取所有类型的交集...

  • 泛型扩展

    基础必备知识 联合类型vs交叉类型 联合类型使用 “|”表示或的关系, 满足其中的一个情况即可。 交叉类型使用“&...

  • TypeScript06(类型断言 | 联合类型 | 交叉类型)

    联合类型 函数使用联合类型 交叉类型 多种类型的集合,联合对象将具有所联合类型的所有成员 类型断言 语法:值 as...

  • 05-TypeScript-交叉类型-联合类型-类型保护

    交叉类型 格式: type1 & type2 & ... 交叉类型是将多个类型合并为一个类型 联合类型 格式: ...

  • TypeScript之联合类型和交叉类型

    这就是关于类型的组合,对类型进行逻辑运算或者说是对类型进行函数式编程。JS编程是一种编程,在JS的类型上进行编程就...

网友评论

    本文标题:TS 联合类型和交叉类型

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