TypeScript入门视频2h(上):https://developer.aliyun.com/article/1392245
联合(Union)与字面量(Literal)类型混用
function merge( n1: number | string, n2: number | string, resultType: "as-number" | "as-string" ) { if (resultType === "as-number") { return n1.toString() + n2.toString(); } if (typeof n1 === "string" || typeof n2 === "string") { return n1.toString() + n2.toString(); } else { return n1 + n2; } } let mergeNumber = merge(1, 3,"as-string"); // 13 let mergeStirng = merge(1, 3, "as-number"); // 4
枚举类型Enum
enum Color { red, green, blue } let color = Color.blue console.log(color); // 2
enum Color { red =5, green, blue } let color = Color.blue console.log(color); // 7
enum Color { red =5, green = 9, blue = 11 } let color = Color.blue console.log(color); // 11 enum Color { red =5, green = "red", blue = 11 } let color = Color.blue console.log(color); // 11
Any 与unknow
any
unkonwn
不保证类型,但是能保证内型安全
void、undefined 与Never
void
function app() { console.log(1); } function app() : void { console.log(1); }
undefined
never
一个函数永远无法执行完毕
类型适配Type Assertions
十分确定的时候才使用。
声明了any类型的变量赋值之后还是any类型,要改变类型就得用类型适配。
使用as关键字
函数类型
TypeScript面对对象
object对象类型
访问对象上不存在的属性
TS: key to type键类型对
显示定义类型
笼统定义类型
对象Object是Any的子集
lnterface接口
高内聚、低耦合
Class类
constructor构造函数不允许重载
Access Modifier 访问修饰符
Module模块
export import
如果没有声明默认导出模块,需要使用{}
Generics泛型