文章目录
一.TS 基础概念
1.什么是TS
- ts是 js 的一个超集,在原有基础上添加了
- 可选静态类型
- 基于类的面向对象编程
- 编写项目 - 更利于架构维护
- 自主检测 - 编译期间检测
- 类型检测 - 支持了动态和静态类型检测;ts不是强类型语言=》本质上还是存在类型转换
- 运行流程 - 依赖编译
- 复杂特性 - 模块化,泛型,接口
2.TS基础类型与写法
* boolean string number array null undefined
// es
let isEnable = true;
let class = "ts";
let classNum = 2;
let classArr = ["basic","execute"];
// ts
let isEnable:boolean = true;
let class:string = "ts";
let classNum:number = 2;
// 数组的两种写法
let classArr:string[]= ["basic","execute"];
let classArr:Array<string> = ["basic","execute"];
* tuple - 元组
数组的搭配比较多样,用来声明数组中有多种类型时使用
let tupleType:[string,boolean]
tupleType =["ts",true]
* enum - 枚举
// 数字枚举- 默认从零开始,依次递增
enum Score {
BAD,
NG,
GOOD,
PERFECT
}
let score:Score = Score.BAD;
// 字符串类型
enum Score {
BAD="BAD",
NG="NG",
GOOD="GOOD",
PERFECT="PERFECT"
}
// 反响映射
enum Score {
BAD,
NG,
GOOD,
PERFECT
}
let scoreName = Score[0]; // "BAD",因为默认依次递增
let scoreValue = Score["BAD"];// 0
// 异构 (数字和字符串都有)
// 字符串设置什么就是什么
// 数字类型依据上一个加一
enum Score {
A, //0
B, //1
C='C',
D="D",
E=6,
F // 7
}
* any unknown void
// 输入
//any - 绕过所有检查 => 类型检测和编译筛查全部失效
let anyValue:any =123;
anyValue ="anyValue";
// unknown - 绕过赋值检查=> 禁止更改传递
// 传递
let unkonwnValue:unknown;
unknownValue="unknownValue";
let value1:unknown =unknownValue;//ok
let value2:any=unknownValue;//ok
let value3:bool