TypeScript

TS是如今很多公司前端开发必备的技术

TS是JS的超集,所以JS基础的类型都包含在内

JS是一门非常灵活的语言,而TS在JS的基础上加入了类型约束,限制太过灵活的JS

安装:

1
npm install typescript -g

运行:

1
tsc [文件名]

基础类型:Boolean、Number、String、null、undefined以及ES6的Symbol和ES10的BigInt

基础类型

字符串类型

字符串使用string定义

1
2
let a: string = '123'
let str: string = `dddd${a}`

数字类型

数字使用number定义

支持十六进制、十进制、八进制和二进制

1
2
3
4
5
6
7
8
let notANumber: number = NaN//NaN
let num: number = 114//普通数字
let float: number = 5.14//小数
let infinityNumber: number = Infinity//无穷大
let decimal: number = 6//十进制
let hex: number = 0xf00d//十六进制
let binary: number = 0b1010//二进制
let octal: number = 0o744//八进制s

布尔类型

布尔使用boolean定义

使用构造函数Boolean创建的对象是包装器对象,类型为Boolean而不是boolean

1
2
3
4
let boolean: boolean = true //直接使用布尔值

// let booleand2: boolean = Boolean(1) // 这样会报错
let booleand=2: Boolean = Boolean(1) //构造函数返回布尔值

空值类型

JavaScript没有空值(Void)的概念,在TypeScript中,可以用void表示没有任何返回值的函数

1
2
3
function voidFn(): void {
console.log('test void')
}

void类型主要用在不希望调用者关心函数返回值的情况下,比如通常的异步回调函数

void也可以定义undefined和null类型

1
2
let u: void = undefined
let n: void = null

null和undefined类型

1
2
let u: undefined = undefined//定义undefined
let n: null = null//定义null

undefined和null是所有类型的子类型,所以undefined和null类型的变量,可以赋值给string类型的变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//这样写会报错 void类型不可以分给其他类型
let test: void = undefined
let num2: string = "1"

num2 = test

//这样是没问题的
let test: null = null
let num2: string = "1"

num2 = test

//或者这样的
let test: undefined = undefined
let num2: string = "1"

num2 = test

如果配置了tsconfig.json开启了严格模式

1
2
3
4
5
{
"compilerOptions":{
"strict": true
}
}

那么null就不能赋给void类型