目录
最基本的数据类型,只有简单的true/false两个值,在JS和TS里叫做 Boolean。
和JS一样,TS里的所有数字都是浮点数,类型是 number。
使用 string表示文本数据类型。 和JS一样,可以使用双引号( ")、单引号(')和反引号(`)表示字符串
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string和number类型的元组。
开发的时候以不同的条件执行不同的分支语句; 不同的条件 的代码表现 往往是数字或者字符串
一 布尔值(Boolean)
最基本的数据类型,只有简单的true/false两个值,在JS和TS里叫做 Boolean。
let isLogin: boolean = false;
// 编译通过
// 后面约定,未强调编译错误的代码片段,默认为编译通过
let isLogin2: boolean = new Boolean(1);
//编译报错
//使用构造函数 Boolean 创造的对象不是布尔值
二 数字(number)
和JS一样,TS里的所有数字都是浮点数,类型是 number。
let n1: number = 6;
let n2: number = 0xf00d;// ES6 中的十六进制表示法,会被编译为十进制数字
let n3: number = 0b1010;// ES6 中的二进制表示法,会被编译为十进制数字
let n4: number = 0o744;// ES6 中的八进制表示法,会被编译为十进制数字
let n5: number = NaN;
let n6: number = Infinity;
三 字符串(string)
使用 string
表示文本数据类型。 和JS一样,可以使用双引号( "
)、单引号('
)和反引号(`)表示字符串
let myName: string = 'karen';
let myAge: number = 25;
// 模板字符串
let str: string = `Hello, my name is ${myName}.
I'll be ${myAge + 1} years old next month.`;
四 元组(Tuple)
元组类型允许表示一个已知元素数量和类型的数组
,各元素的类型不必相同。 比如,你可以定义一对值分别为 string
和number
类型的元组。
//1.默认值
let tom: [string, number] = ['Tom', 25];
//2.通过下标赋值
let tom: [string, number] = ['', 0];
tom[0] = 'Tom';
tom[1] = 25;
//通过下标获取元组的元素并进行对应的操作
tom[0].slice(1);
tom[1].toFixed(2);
//3.越界操作
let tom: [string, number];
tom = ['Tom', 25];
tom.push('male');
tom.push(true);//报错,当添加越界的元素时,它的类型会被限制为元组中每个类型的联合类型
//解构赋值
const lilei: [string, number] = ["Lilei", 23];
console.log(lilei);
const [myname, myage]: [string, number] = lilei;
console.log(myname, myage);
// 解构赋值
let arr:[number,string]=[100,'hello']//不是解构
let [A,B]:[number,string]=[100,'hello']//是解构 ---->解构的隐式代码 let A=x[0] let B=x[1]
let obj1:[number,string]=[100,"hello"]
let [x,y]:[number,boolean]=[100,true]
console.log(x,y)
五 枚举(enum)
开发的时候以不同的条件执行不同的分支语句; 不同的条件 的代码表现 往往是数字或者字符串
// 枚举
enum netWork{net2G,net3G,net4G,net5G,net6G}
function fn(x:number){
if(x==0){1
console.log("做2g的网络请求")
}
else if(x==1){
console.log("做3g的网络请求")
}
else if(x==2){
console.log("做4g的网络请求")
}
else if(x==3){
console.log("做5g的网络请求")
}
else if(x==4){
console.log("做6g的网络请求")
}
}
fn(netWork.net6G)//net6G-->可以需求改变
-
六 数组
TS像JS一样可以操作数组元素。 有两种方式可以定义数组。
第一种:可以在元素类型后面接上【】
let arr:number[]
arr=[100,200,300]
console.log(arr);//[100,200,300]
let arr1:string[]
arr1=['Chinese','English']
console.log(arr1);//['Chinese','English']
第二种:Array<元素类型>
let arr2:Array<string|number>
arr2=[1,2,3,'hello']
console.log(arr2);//[ 1, 2, 3, 'hello' ]
七 联合类型和类型别名
type Mytype=number|string|boolean
let color:Mytype
color=100//打印100
color='color'//打印color
color=true//打印true
八 对象(Object)
let p1:object;//非基础类型,引用类型
p1={name:"karen",age:23} //{name:"karen",age:23}
p1=[10,20,320]//数组也是特殊的对象 -->打印[10,20,320]
p1={name:'jack',age:18,color:"red"} //{name:'jack',age:18,color:"red"}
// p1="hello" //报错
console.log(p1)
let p2:Object;
p2=[10,20]
console.log(p2);//[10,20]