TS笔记 - 01数据类型

数据类型

开始使用

1
2
3
tsc --init  //创建tsconfig.json 改"outDir":'./js'
tsc index.ts //编译文件为index.js js目录下生成
创建html 引入index.js

数据类型

boolean

1
let flag: boolean = true;

number

1
let flag: number = 123;

string

1
let flag: srting = '123';

array

1
2
3
4
// 第一种定义数组
let arr1: number[] = [1,2,3]
// 第二种定义数组
let arr2: Array<number> = [1,2,3]

tuple 元祖 * 属于数组的一种

1
2
3
4
5
6
7
let arr: Array<number | string> = [1,2,3,'123']
let arr: Array[number,string] = [1,'123']

// 元组 限制类型和个数
let tuple: [number,string] = [1,'1']
tuple.push(2) //允许插入
// console.log(tuple[2]) // 但是不可以访问

enum 枚举 *

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// success 1 error 0
// status 1 pay 2 unpay 3 cancel
enum Flag{success=1,error=2};
let s:Flag = Flag.success; // 1

enum Color {blue,red,'orange'};
var c:Color=Color.red; //1 如果枚举没有赋值 他的值就是下标index

// // 相关知识
// 数字枚举 0,1,2,3,4,5 反向映射
enum Role{
Reporter = 1,
Developer,
Maintainer,
Owner,
Guest
}
// 字符串枚举
enum Message {
Success = '恭喜你,成功了',
Fail = '抱歉,失败了'
}
// 异构枚举 混用 不建议使用
enum Answer {
N,
Y = 'YES'
}

// 枚举成员
enum Char{
// const
a,
b=Char.a,
c=1+3,

// computed 编译阶段不计算 运行阶段才计算 在此后声明的常量必须初始化值
d=Math.random(),
e='123'.length
}

// 常量枚举
const enum Month {
Jan,
Feb,
Mar
}

// 枚举类型
enum E { a,b }
enum F { a = 0, b=1}
enum G { a='apple', b='banana'}

let e:E = 3
let f:F = 3

let e1:E.a
let e2:E.b
let e3:E.a

let g1:G
let g2:G.a

any 任意 *

1
2
3
let str:any={}
str='123';
str=123;

null undefined 其它never类型的子类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

// 定义没有赋值
var num:number;
console.log(num); // 输出undefined 错误

var num:undefined;
console.log(num); // 输出undefined 正确


// 空类型
var num:null;
num = null; //正确
num = 123; //错误

// 一个元素可以设置多个类型
var num:number | null | undefined;

void * 表示没有任何类型 用于定义方法的时候方法没有返回值

1
2
3
function run():void{
//
}

never * 其他类型 包括null undefined 代表不会出现的值 几乎不会使用

1
2
3
4
var a:never;
a=(()=>{
throw new Error('error');
})