#中文文档
https://www.tslang.cn/docs/release-notes/typescript-2.2.html
#概要内容
1、装饰器
类声明,方法, 访问符,属性或参数
2、package相关说明
3、npm
4、lanuch.json
5、setting.json
(1):"typescript.tsdk"
(2):"files.exclude"
(3):"editor.formatOnSave"
6、调试
7、泛型
8、Promise
9、解构
11、Proxy
12、规范
(1):如果在有限集里能够确定类型,一定要定义type或者interface,否则定义成any类型。
(2):如果需要约束某个键值(通常像一些switch的常量,事件的名字等),可通过泛型+keyof来实现
example1
switch(name){
case "type1":
break;
case "type2":
break;
}
example2
instance.addEventListener("eventName",()=>{},this);
(3):尽量不要用function来表示函数,而使用箭头函数来替代,除非你有通过function里的作用域来获取函数实例本身。
(4):尽量不要用var 来申明变量,改为用let来申明变量,一般情况下,实在找不出理由还需要使用 var 关键字的。
(5):如果typescript能够推断出类型,尽量不要添加类型,例如:let a = 1;
13、生成器 generators * (typescript1.6)
14、收窄函数 a is Cat(typescript1.6)
15、this类型
16、幂运算符** **=
17、不可及的代码
18、非空断言操作符 object!.value
20、never类型
21、通配符 glob
* 匹配任意 0 或多个任意字符
? 匹配任意一个字符
[...] 若字符在中括号中,则匹配。若以 ! 或 ^ 开头,若字符不在中括号中,则匹配
!(pattern|pattern|pattern) 不满足括号中的所有模式则匹配
?(pattern|pattern|pattern) 满足 0 或 1 括号中的模式则匹配
+(pattern|pattern|pattern) 满足 1 或 更多括号中的模式则匹配
(a|b|c) 满足 0 或 更多括号中的模式则匹配
@(pattern|pat|pat?erN) 满足 1 个括号中的模式则匹配
** 跨路径匹配任意字符
22、索引访问类型
23、映射类型
Partial 将对象所有的属性变成可选
Readonly 将对象所有的属性变成可读
Required 将对象所有的属性变成必选
Pick 从对象中取可用的属性
Record
Exclude
Extract
NonNullable
ReturnType
InstanceType
24、对象类型 object
25、数组与元组 let a:[string,number];
26、普通字符串与模板字符串 ``
27、枚举 enum
28、联合与交叉类型 | &
29、类型别名 type
30、类型推论、类型断言、类型保护