简介
- 本次介绍
any
、number
、boolean
、string
、array
、tuple
这5种数据类型
任意any
类型
-
在编程阶段不清楚变量的数据类型, 这些变量可能来自于动态的内容,比如来自用户输入或第三方代码库。在 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查,那么我们可以使用any类型来标记这些变量
let value1:any = 1; let value2:any = 'a', console.log(value1); console.log(value2); // 这就是默认情况下JavaScript变量的定义和使用情况
-
但是在使用any数据类型时,TypsScript不能自动识别该数值是那种数据类型,那么在写代码的时候,编译器无法提供相应的方法和属性提示,这就是any类型的一个弊端
/*例如: 我们拿到了一个any类型的变量, 但是我们明确的知道这个变量中保存的是字符串类型,此时我们就可以通过类型断言告诉编译器,这个变量是一个字符串类型,我们就可以通过类型断言将any类型转换成string类型, 使用字符串类型中相关的方法了 */ let str:any = 'it666'; let len = str.length; // 在输入length的时候没有语法提示,因为编译器不能确定改变是否有length属性 console.log(len)
数字number
类型
和JavaScript一样,TypeScript里的所有数字都是浮点数,他们都是数字
number
类型-
除了支持
十进制
和十六进制
字面量,TypeScript还支持ECMAScript 2015中引入的二进制
和八进制
字面量let value1: number = 6; // 十进制 let value2: number = 0xf00d; // 十六进制 let value3: number = 0b1010; // 二进制 let value4: number = 0o744; // 八进制 console.log(value1); // 6 console.log(value2); // 61453 console.log(value3); // 10 console.log(value4); // 484
-
当然也可以先定义变量,在进行变量的初始化
let val:number; val = 123; console.log(val);
布尔boolean
类型
-
布尔类型是最基本的数据类型,它只有两个值
true
和false
let value1:boolean; let value2:boolean; value1 = true; value2 = false; console.log(value1) console.log(value2)
字符串string
类型
-
和JavaScript一样,通过使用双引号(
"
)或单引号('
)表示字符串类型let val:string; val = '123'; console.log(val)
-
可以使用
模版字符串
let a:number = 34; let val:string; val = `我是的年龄为${a}`; console.log(val)
-
可以使用
字符串拼接
let a:number = 34; let val:string; val = '我是的年龄为' + a; console.log(val)
数组类型
-
TypeScript像JavaScript一样可以操作数组元素,有两种方式可以定义数组。
-
方式一:可以在元素类型后面接上[],表示由此类型元素组成的一个数组
-
定义只能存储单个数据类型,
let 变量名称:数据的类型[];
let arr:number[]; arr = [1,2,3]; arr = [1,'2',3]; // 报错
-
定义能存储多个数据类型,
let 变量名称:(数据的类型 | ...)[];
let arr:(number | string)[]; arr = [1,'2',3];
-
定义能存储任意数据类型,使用
any
类型let arr:any[]; arr = [1,'2',true];
-
-
方式二:使用数组泛型
-
定义只能存储单个数据类型,
let 变量名称:Array<数据的类型>
let arr:Array<number>; arr = [1,2,3]; arr = [1,'2',3]; // 报错
-
定义能存储多个数据类型,
let 变量名称:Array<数据的类型 | ...>
let arr:Array<number | string>; arr = [1,'2',3];
-
定义能存储任意数据类型,使用
any
类型let arr:Array<any>; arr = [1,'2',true];
-
元组类型
表示一个已知元素数量和类型的数组,各元素的类型不必相同
-
let 变量名称:[数据类型1, 数据类型2, 数据类型3, 数据类型1, ...]
let arr:[string, number, boolean, string]; /* 1.表示定义了一个名称叫做arr的, 这个数组中将来可以存储3个元素 2.第一个元素必须是字符串类型, 第二个元素必须是数字类型, 第三个元素必须是布尔类型, 第四个元素必须是字符串类型 3.超过或少于指定的长度会报错 */ arr = ['a', 1, true, 'b']; console.log(arr); arr = ['a', 1, true, 'b', 1]; // 报错 arr = ['a', 1, true]; // 报错