ts-1-基础数据类型
1. 版本及配置
- ts版本:
Version 4.7.4
- 生成 ts 的配置文件 保存ts的文件夹 在终端中打开 执行命令:
tsc --init
- 就可以看见ts的配置文件 tsconfig.json,以下代码都是基于
"strict": true, 的配置来测试的
- 不作任何配置,默认
"strict": true
"strict": true // 开启所有严格的类型检查
2. 语法详解
let num: number = 12
num-变量名称
number-变量的类型,称之为类型注解
12-变量的值
3. 基础数据类型
let num: number = 12
let num2: number = Number(13)
let num3: number
console.log(num);
console.log(num2);
let str: string = 'ccc'
let str2: string = String('aaa')
console.log(str);
console.log(str2);
let bl: boolean = false
let bl2: boolean = Boolean(true)
console.log(bl);
console.log(bl2);
let u: undefined = undefined
let n2: null = null
4. any 类型
- any 类型可以接收任意类型的数据。
- ts 中被声明为 any 类型的变量,是不会进行任何类型检查的,
- 也就是说any类型的数据,可以执行任何形式的操作,这样可以很容易地编写类型正确但是执行异常的代码,因为没有经过类型检查。
let anyVar
let anyVar1: any = 'a'
anyVar1 = 1
anyVar1 = false
anyVar1 = []
anyVar1 = {}
5. unknown 类型
- unknown 类型 --这个类型就是解决 any 类型的问题而来的类型。
- any 类型可以接受任意类型的数据。
- unknown 类型也可以接收任意类型的数据。
- any 和 unknown 可以互相赋值。
let unknownVar1: unknown = 'cccc'
let anyVar2: any = unknownVar1
let anyVar3: any = 'asd'
anyVar3 = unknownVar1
- any 与 unknown 的区别。
- any类型是不做类型检查的。
- 但是 unknown 是要做类型检测,所以 unknown 类型比 any 类型更加严格,安全。
let person: any = {
uname: 'zrs',
age: 12
}
console.log(person.uname);
let person2: unknown = {
uname: 'zrs',
age: 12
}
type Obj = {
uname: string,
age: number
}
console.log((person2 as Obj).uname);
6. void 类型
- void 类型:表示没有任何类型,常用作函数的返回值
function func(): void {
}
let vVar: void = undefined
7. never 类型
function errorMsg(msg: string): never {
throw new Error(msg);
}
function loop(): never {
while (true) {
}
}