| 概述
| 开发工具
- 全局安装TypeScript
npm install typescript -g
-
使用
ts-node插件编译安装
npm install -D tslib @types/node
npm install -g ts-node
- 第一个TS代码
function say(){
let say: string = 'hello world'
console.log(say)
}
say()
执行ts-node ts文件名
输出
| 数据类型
1. 数字类型/字符串类型
let a:number = 1;
let b:string = '水';
2. 数组类型
方式1
全部为数组or字符串
let arr:number[] = [1,2,3,4]; // ✅
let arr:sring[] = ['ad','da','dad']; // ✅
let arr:number[] = [1,2,'3',4]; // ❌
方式2
let arr:Array<number> = [1,2,3,4]; // ✅
let arr:Array<sring> = ['ad','da','dad']; // ✅
3.元组类型(tuple)
属于数组的一种
可以指定数组某一项的类型
// 需要一一对应且不能多也不能少
let arr:[number,string,boolean,string] = [2323,'ada',true,'adada']; // ✅
4.枚举类型(enum)
顾名思义就是定义一个数字对应的某些状态,如
pay_status 0 未支付 1 支付 2 交易成功
flag 1 表示true 0 表示 false
主要用于提高代码可读性
enum Flag {success=1,error=0} // 定义名为Flag的枚举
let result:Flag = Flag.success // 使用枚举
console.log((result)); // 1
没有赋值的话打印的是枚举里面的变量索引值
如果上一个变量是有值的,那么就在这个值的基础上+1
enum Color {red,blue=5,yellow}
let c:Color= Color.blue;
console.log(c); // 5
console.log(Color.red); // 0
console.log(Color.yellow); // 上一个变量值为5,因此+1等于6
反向映射: (value->key)
enum state {
Start = 0,
Second,
Three
}
console.log(state.Second); // 1 正向映射
console.log(state[0]); // Start 反向映射
注意:在字符串枚举中没有反向映射。
5.任意类型(any)
顾名思义就是和js定义一个变量一样,不要求类型是何种。
let num:any = 1231;
let num: any = 'aada';
用处
获取dom元素的时候,dom的类型复杂多样,所以用any比较好
let dom:any = document.getElementById('dada');
dom.style.color = '#fff';
6.null与undefined
用来定义未赋值的变量
使用了null,必须要有undefined在
| 符号表示或的意思
let b:null | number | undefined;
console.log(b); // undefined
b = null;
console.log(b) // null
/** undefined 使用 **/
let c:undefined;
console.log(c); // undefined
// or
let c:undefined | number; // 或
console.log(c); // undefined
c = 324;
console.log(c); // 324
7.void类型
表示没有任何类型,一般用于定义方法时方法没有返回值的时候
function fn:void () {
console.log(111)
}
8.never类型
是其他类型(包括undefined和null)的子类型
比如抛出一个error对象时
let a:never;
a=(()=>{
throw new Error(‘错误’)
})()