• 【2020-01-17】高级类型


    一、交叉类型

    交叉类型是将多个类型合并为一个类型。这让我们把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。

     二、联合类型

    表示一个值可以是几种类型之一,我们用竖线 | 分隔每个类型,所以string | number,表示一个值既可以是string 也可以是 number

     三、类型保护和区分类型

     四、可以为null的类型

    null和undefined 

     如果编译器不能够去除null或undefined ,你可以使用类型断言手动去除。语法是添加!后缀

     五、类型别名

    类型别名会给类型起一个新名字。类型别名有时和接口很像,但是可以作用于原始值,联合类型,元组以及其他任何你需要手写的类型

    起别名不会新建一个类型 - 它创建了一个新名字来引用那个类型。给原始类型起别名通常没什么用,尽管可以作为文档的一种形式使用

    同接口一样,类型别名也可以是泛型-我们可以添加类型参数并且在别名声明的右侧传入:

     然而。类型别名不能出现在声明右侧的任何地方

    六、接口 VS 类型别名

    类型别名和接口有一些细微差距

    1、接口可以被实现,和可以继承其他接口,但是类型别名不可以

    2、无法通过接口来描述一个类型并且需要使用联合类型或元组类型,这时通常会使用类型别名

    七、字符串字面量类型

    字符串字面量类型允许你指定字符串必须的固定值。在实际应用中,字符串字面量类型可以与联合类型,类型保护和类型别名很好的配合

     八、可辨识联合

     九、完整性检查

     十、多态的this类型

     由于这个类使用了this类型,你可以继承它,新的类可以直接使用之前的方法,不需要做任何的改变

    十一、索引类型(Index types)

    使用索引类型,编译器就能够检查使用了动态属性名的代码。

     十二、索引类型和字符串索引签名

  • 相关阅读:
    iOS开发那些事-iOS6苹果地图有用开发
    Partition List -- LeetCode
    C++11:强类型枚举(enum)
    数据绑定(八)使用Binding的RelativeSource
    对于流程优化的处理器架构
    Linux/UNIX流程关系
    《炉石传说》建筑设计欣赏(6):卡&在执行数据时,组织能力
    采用truelicense进行Java规划license控制 扩展可以验证后,license 开始结束日期,验证绑定一个给定的mac住址
    [Linux]scp 命令远程复制
    从头开始编写项目Makefile(八):型号规则
  • 原文地址:https://www.cnblogs.com/QQ-lala/p/12207251.html
Copyright © 2020-2023  润新知