标题初识TypeScript#
一、 什么是typescript?
TS(编译型)出现主要是为了弥补JS(解释型)弱类型特性
二、 为什么用typescript?
TS可维护和可读性强
即使语法出错TS也能编译成js
TS具有很好的发展前景(Angular2)
三、 怎么使用typescript?
安装使用
全局安装命令:npm install –g typescript
编译文件命令 tsc hello.ts
四、 TypeScript原始数据类型
有string number Boolean null undefined enum symbol
空值一般采用void来表示void可表示变量也可表示函数返回值
五、 TypeScript中的任意值
任意值(Any)用来表示允许赋值为任意型
声明一个变量为任意值之后,对它的的任何操作,返回的内容的类型都是任意值
如果变量在声明的时候,未指定其类型,那么它会被识别为任意值类型
六、 TypeScript中的类型推论
Ts会依照类型推论的规则推断出一个类型
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成any类型而完全不被类型检查
例如 var b=1;
b=”1”将会报错 因为刚赋值初始化时 系统默认b为number类型 而你再次指定别的类型的时候将报错
七、 TypeScript中的联合类型
联合类型表示取值可以为多种类型中的一种
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成any类型而完全不被类型检查
只能访问此联合类型的所有类型里共有的属性或者方法
八、 TypeScript中的对象类型—接口
可描述类的一部分抽象行为,也可描述对象的结构形状
接口一般首字母大写。有点编程语言会建议接口的名称加上I 前缀
赋值的时候,变量的类型和接口中的变量类型保持一致
接口中可定义可选(可疑)属性 只读属性 任意属性
无法分配给“age”,因为它是只读属性
九、 TypeScript中的数组类型
可采用类型+方括号表示
可采用数组泛型Array表示法
可采用接口表示法
十、 TypeScript中的函数类型
函数约束 有函数本身的参数约束 返回值约束
还有函数本身赋值的变量的约束
可采用重载的方式才支持联合类型的函数关系
十一、 TypeScript中的类型断言
类型断言(type asserttion)可以用来手动指定一个值得类型
语法(<类型>值)或者(值 as 类型)
在react中的jsx语法 只能使用后者
类型断言不是类型转换,断言成一个联合类型中不存在的类型是不允许的
使用范围:当使用联合类型的时候,联合类型中只能访问共有的方法或属性,但是在不确定类型的情况下需要访问其属性,但是ts语法不允许,这时就可以使用类型断言
十二、 TypeScript中的声明文件
当使用第三方库时,我们需要引用它的声明文件
通常我们会把类型声明放到一个单独的文件中
用 三斜线指令 表示引用了声明文件
///
十三、 TypeScript中的类型别名
类型别名用来给一个类型起个新名字
采用关键字type 例如type Name=string|number 例子中的Name就表示可设置字符串和数字类型
也可采用type来约束取值只能是某些字符串中的一个 如 type getSex=’男’|’女’;
十四、 TypeScript中的枚举
枚举(enum)类型用于取值被限定在一定范围内的场景
采用关键字enum定义 例如enum Days{Sun,Mon,Tue,Wed,Thu,Fri,Sat}
枚举成员会被赋值为从0开始递增的数字,同时也会对枚举值到枚举名进行反向映射
十五、 TypeScript中的类的修饰符
Public private 和protected
Public 修饰的属性或方法是公有的,可以在任何地方被访问到,默认所以的属性和方法都是public
Private修饰的属性或方法是私有的,不能在声明它的类的外部访问
Protected修饰的属性或方法是受保护的,它和private类似
十六、 TypeScript中的泛型
泛型(generics)是指在定义函数、接口或者类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性