TS数据类型
数据类型作用?在你们定义代码的时候,写了数据类型,编译代码运行的时候内存分配空间。决定了当前值在内存里面用多大的空间来存放
变量必须要有三要素:
- 变量的名字
- 变量的类型
- 变量的初始值
数字类型
let age:number
定义数据类型为number就可以。
布尔类型
let boo:boolean = true
boo = false //值必须是true false
boo = ”小王“ //编译报错
字符串类型
let username:string = "tom"
username=123 //编译报错
数组类型
// 数组类型
let array:number[] = [1,2,3]
let array2:string[] = ["1","2","xiaowang"]
// 在数组里面存放对象类型,简单的语法
let array3:Object[] = [{id:1}]
// 泛型设计
let array4:Array<string> = ["xiaowang","xiaozhang"]
// any类型在某些特定场景可以使用,一般不推荐使用
let array5:any = [1,"xiaowang",{id:1}]
在TS中数组要求必须存放统一数据类型的值,定义数组的时候需要申明数组里面存放数据类型,定义常见的三种语法就是上面案列中
元组类型
元组类型是一种特殊数组,允许你在数组中存放不同数据类型
let student:[string,number] = ["xiaowang",20]
规定数组每一个值是什么类型,规定数组里面内容长度
any类型
你可以给任何变量都设置any类型,一把 不会用any,如果要用any一般用来表示不准确的数据类型
const element:any = document.getElementById("app")
// any类型
let username2:any
username2 = "xiaowang"
username2 = 10
undefind和null
当一个变量定义后没有赋值就是undefined
let scope:number | undefined;
console.log(scope);
你可以直接给一个变量设置类型为undefined,这种就没有太多意义。
你可以用|符号来表示某个变量可以支持多个类型
never类型
never类型表示哪些用不存在的值
// never类型
let others:never
others = (()=>{
throw new Error("代码错误");
})()
当你无法用一个数据类型来表示一个函数的结果,那就never来表示
枚举类型
代码开发过程中会出现很多的状态。比如订单:0-支付失败 1-支付成功 2-支付超时 3-订单失效
一年12个月:0-1月份 1-2月份
let order = {
id:"cdbchhd",
name:"小米耳机订单",
status:0 //魔法数字、魔鬼数字
}
let order = {
id:"cdbchhd",
name:"小米耳机订单",
status:1
}
let user = {
gender:0
}
let user2 = {
gender:1
}
用枚举的方式将订单状态定义出来
// 枚举类型
// 当你们状态是固定可以使用枚举
enum state {error=0,success=1,timeout=2}
enum gender {man=0,fman=1,notfind=2}
let order={
id:"dddd",
status:0
}
if(order.status == state.error){
}else if(order.status == state.success){
}else if(order.status == state.timeout){
}
枚举其实就是将你们代码中各种状态提取出来,要求状态必须是固定,不变化。比如一年12个月、一年4季,比如性别
Object类型
// 对象类型
let obj1:object = {}
// console.log(obj1.id);
let obj2:object = []
let obj3:object = function(){}
let obj4:{id:number,name:string} = {id:1,name:"xiaowang"}
console.log(obj4.id);
在定义过程中对象类型你可以指定每一个属性的类型