TypeScript_1 基础数据类型

字符串类型

1
let one: String = "one"

数字类型

1
2
3
let infinityNumber: number = Infinity  //无穷大
let notANumber: number = NaN //Nan
let num: number = 1 //数值 十六进制 Ox123d 二进制 Ob1000 八进制 Oo127

布尔类型

1
2
3
4
5
6
let bool1: Boolean = new Boolean(1)
console.log(bool1); //[Boolean: true]
let bool2: boolean = Boolean(1)
console.log(bool2); //true
let bool3: boolean = true
console.log(bool3); //true

空值类型

1
2
3
4
5
let u: void = undefined
let n: void = null //在严格模式下null不能赋值void
function dataVoid(): void {
console.log("this is null");
}

null和undefined类型

1
2
3
4
5
6
7
8
9
10
11
12
13
let u1: undefined = undefined
let n1: null = null

// void与undefined的差别
// undefined和null是所有类型的子类型,可以赋值给其它类型的变量
let a1: string = "123"
a1 = u1
console.log(a1); //undefined

// void类型赋值给其它类型的变量就会提示错误,但实际代码能运行
let a2: string = "123"
a2 = u //Type 'void' is not assignable to type 'string'
console.log(a2); //undefined

any类型和unknown类型

1
2
3
4
5
6
7
8
9
10
11
12
13
let any1: any = 1 //any类型不限制数据类型
let un1: unknown = 1 //unknown类型也不限制类型,但是只能作为父类型,不能作为子类型,不能赋值给其它类型
let num1: number = un1 //Type 'unknown' is not assignable to type 'number'
any1 = num1
console.log(any1);

//any类型可以取到对象的值
let any2: any = { a: "any" }
console.log(any2.a);

// unknown类型取对象的值就会报错,实则不影响运行
let un2: unknown = { a: "unknown" }
console.log(un2.a); //Property 'a' does not exist on type 'unknown'