3 typescript基础
3.2 变量与常量
3.2.1 var,let,const的作用域
- var声明的变量,其作用域为该语句所在的函数内,而且存在变量提升
- let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升
- const一般声明的是常量,在后面出现的代码中不能在修改该常量的值
3.2.2 变量与常量的区别
3.2.1 什么是变量提升
3.3 Typescript的数据类型
3.3.1 基本类型
Typescript的基本类型包括Number、Boolean、String、Symbol、Void、Null和Undefined 类型,以及所有用户定义的枚举类型
-
Number:对应Js中的Number类型,用来表示双精度64位格式IEEE 754浮点数,关键字number 代表Number类型
typescirpt规范中,所有未赋值的变量都是Undefined类型 -
Boolean:对应Js中的Boolean类型。
-
String:对应Js中的String类型,用来表示存储为Unicode UTF-16的字符序列
-
Symbol:对应js中的Symbol类型,用来表示对象属性的键
ES2015才引入,下面是全局对象Symbol的方法和属性
|方法或属性|说明|
5.Void 表示空返回值,其类型可能为null和undefined.Void是任意类型的子类型,是Null和Undefined的超类型
6.Null 对应js中的Null。null是代表引用Null类型的值,无法直接引用Null类型本身。Null是除Undefined类型外的所有类型的子类型
7.Undefined 对应js中的Undefined类型。undefined表示未初始化的值,并且是Undefined类型的唯一值,无法直接引用Undefined类型
8.枚举:枚举是不同用户定义的Number类型的子类型。枚举类型使用枚举声明及类型引用声明
enum Direction{
Up =1,
Down =2,
Left =3,
Right=4
}
3.3.2对象类型
对象类型由属性、调用签名、构造签名和索引签名等成员组成
3.3.3任意类型
使用任意类型来退出编译期类型检查
1.any表示任意类型
2.Object 表示任意类型 尽量用1
3.3.4
3.3.5 联合类型
3.3.6 交集类型(这个很有意思啊)
3.4 强大的面向对象体系
3.4.1 类
1.类的定义与使用
2.继承
3.public、private与protected修饰符
4.静态属性
5.抽象类
3.4.2 接口
3.4.3
3.4.4 泛型
3.4.5
3.4.6 枚举
当满足如下条件之一,枚举成员被当作常量:
- 不具有初始化函数,并且之前的枚举成员是常量。这种情况下,当前枚举成员的值为上一个枚举成员加1
- 枚举成员使用常量枚举表达式初始化
3.5 Typescript命名空间
3.5.1 声明命名空间
- 非实例化的命名空间是仅包含接口类型、类型别名及其他非实例化命名空间的空间
- 实例化的命名空间是不符合此定义的命名空间
当命名空间标识符被引用为NamespaceName时,它表示命名空间和类型名称的容器;当命名空间标识符被引用为PrimaryExpression时,它表示命名空间的单实例。
3.5.2 实例
指定多个标识符的IdentifierPath的命名空间等同于一系列嵌套的单标识符命名空间声明,其中除最外层外的所有标识符都自动导出
3.5.3 命名空间体
命名空间体对应于执行一次已初始化命名空间实例的函数。