TypeScript快速上手
# .
# TypeScript 快速上手
# 安装TypeScript以及运行环境
npm i -D typescript
or
npm install -g typescript
1
2
3
2
3
ts-node
是 Node.js 的 TypeScript 执行引擎和 REPL。
它 JIT 将 TypeScript 转换为 JavaScript,使您无需预编译即可直接在 Node.js 上执行 TypeScript。这是通过挂钩 node 的模块加载 API 来实现的,使其能够与其他 Node.js 工具和库一起无缝使用。
npm install -D ts-node
or
npm install -g ts-node
1
2
3
2
3
# 运行TypeScript
demo-01.ts
function hello(name:string):void{
console.log(`hello ${name}`)
}
hello('Mortal红尘.')
1
2
3
4
2
3
4
ts-node demo-01.ts
# ts-node 配合webStorm or VSCode 编码跟顺畅 肥肠方便
or
# typescript
tsc demo-01.ts # 不会直接运行,会编译出一个js文件,默认es2015,
# tsc是typescript自动的命令,编译整个项目or单个文件
1
2
3
4
5
6
2
3
4
5
6
初始化tsc编译配置文件,配置整个项目编译规则 详情点击TypeScript的tsconfig.json配置 (opens new window)
tsc --init
1
# TypeScript 常用类型
// 任意
let an: any = 1
// 字符
let str: String = '1'
// 数字
let num: Number = 1 // NaN Infiity
// 布尔
let bool: Boolean = true
// 数组
let arrNum: Number[] = [123]
// 只存放字符串值
let arr2: Array<String> = ['java']
// 元组,值的顺序必须与定义类型的顺序一致,不能多不能少
let arr: [String, Number] = ['1231', 4444]
let nu: null = null
let vo: void = undefined
let sym: symbol = null
// 枚举 enum , 如果不指定值那么,值将会是索引值(从0开始)
enum networkStatus {
success,
error
}
let net: networkStatus = networkStatus.success
// 前者类型不赋值就使用,得到的将是后者的 undefined。后者不是 undefined,前者也没有赋值将报错。
let numt: Number | undefined;
let numt1: Number | null | undefined; // undefined
function run(): void { // 无返回值
}
function run1(): Number { // 可多类型:Number|String
return 0; // 只能返回 Number 类型
}
/*
never类型是其他类型,包括 null 、 undefined 的子类型,
这意味着声明never类型的变量只能被never类型所赋值。
let a:undefined =;
a=undefined;
a=1;报错
let e:never;
e = (()=> {throw new Error('err')})();
*/
/**
* 可选参数与默认值,可选参数不能有默认值
* @param name
* @param age
*/
function reg(name?: String, age: Number = 0): String {
return `${name},${age}`
}
/**
* 传入的参数类型是number,如果写成ret: Number[]如果不用Number()转成number将不能运行
* 基本包装类型:Number,jisuan() 传入的值是Number,Number与 Number不能进行运算
* 所以需要转换成number
* https://blog.csdn.net/baidu_25343343/article/details/54849475
* @param ret
*/
function count(ret: Number[]): Number {
var jg: number = 0
ret.forEach((item, i) => {
jg += Number(item)
})
return jg
}
console.log(count([1, 12, 312, 31, 23, 1, 31, 231]))
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
编辑 (opens new window)
上次更新: 2023/05/18, 07:05:54