文章目录
01.布尔类型boolean
//布尔类型 ---->boolean
//let 变量名:数据类型=值
let flag:boolean=true
flag=false
//flag=10 编译不通过
console.log(flag)

02.数字类型number
//数字类型 ---->number
let a1:number=10//十进制
//a1='哈哈' 编译不通过
let a2:number=0b1010//二进制
let a3:number=0o12//八进制
let a4:number=0xa//十六进制
console.log(a1*10)
console.log(a2)
console.log(a3)
console.log(a4)

03.字符串string
//字符串 ---->string
let str1:string='床前明月光'
//str1=10
let str2:string='疑是地上霜'
let str3:string='举头望明月'
let str4:string='低头望故乡'
console.log(`${str1},${str2},${str3},${str4}`)

//字符串和数字之间拼接输出
let str5:string='字符串'
let a5:number=10
console.log(`${str5},${a5}`)

05.总结
- ts中变量一开始是什么类型,那么后期赋值的时候,只能用这个类型的数据,不允许使用其他类型的数据赋值给当前的这个变量
06.undefined和null
undefined和null都可以作为其他类型的子类型,把undefined和null赋值给其他类型的变量
//需要关闭严格模式,否则编译不通过
let und:undefined=undefined
let nul:null=null
console.log('undefined和null',und,nul)
let num:number=undefined
let number:number=null
console.log('子类型',num,number)

07.数组类型
//数组定义方式1 let 变量名:数据类型[]=[值1,值2,值3]
let arr1:number[]=[10,20,30,40,50]
console.log(arr1)
//数组定义方式2 let 变量名:Array<数据类型>=[值1,值2,值3]
let arr2:Array<number>=[100,200,300]
console.log(arr2)

- 注意问题:数组定义后,里面的数据的类型必须和定义数组的时候是一致的,否则有错误提示信息,也不会编译通过的
08.元组类型
- 在定义数组的时候,类型和数据的个数一开始就已经限定了
let arr3:[string,number,boolean]=['哈哈',100.12345,true]
console.log(arr3)
//可以调用对应类型的方法
//console.log(arr3[1].split('')) 编译不通过,因为number没有split方法
console.log(arr3[0].split(''))
console.log(arr3[1].toFixed(2))

- 注意问题:元组类型在使用的时候,数据的类型的位置和数据的个数,应该和在定义元组的时候的数据类型及位置应该是一致的
09.枚举类型
- 枚举里面的每个数据类型都可以叫元素,每个元素都有自己的编号,编号是从0开始,依次递增增加1
enum Color{
red=1,
green,
blue
}
//定义一个Color的枚举类型的变量来接受枚举的值
let color:Color=Color.red
console.log(color)
console.log(Color.red,Color.green,Color.blue)
console.log(Color[3])

- 枚举中的元素可以是中文的数据值,但是不推荐
enum Gender{
男,
女
}
console.log(Gender.男)

10.any类型
let str:any=100
str='嘿嘿'
console.log(str)

当一个数组中要存储多个数据,个数不确定,类型不确定,此时可以使用any类型来定义数组
let arr:any[]=[100,'哈哈',true]
console.log(arr)

//console.log(arr[0].split('')) 能编译通过,但是在浏览器中会报错
console.log(arr[1].split(''))

11.void类型
在函数声明的时候,在小括号后面使用:vold,代表该函数没有任何的返回值
function showMsg():void{
console.log(new Date())
//return '100' 编译不通过
//return undefined 输出undefined
return null //输出null
}
showMsg()
console.log(showMsg())

定义一个void类型的变量,可以接受一个undefined的值,但是意义不大
let vd:void=undefined
console.log(vd)

12.object类型
//object
function getObj(obj:object):object{
console.log(obj)
return {
name:'大明',
age:18
}
}
let obj:object={
name:'小明',
age:18
}
console.log(getObj(obj))

console.log(getObj('123')) 编译不通过
console.log(getObj(new String('123')))

console.log(getObj(String))

13.联合类型
表示取值可以为多种数据类型中的一种
//需求1:定义一个函数得到一个数据或者字符串值的字符串形式值
function getData(data:number|string):string{
return data.toString()
}
console.log(getData(123))
console.log(getData('999'))

14.类型断言
- 类型断言:手动指定数据类型
- 类型断言语法1---->
<类型>变量名 - 类型断言语法2---->
值 as 类型
需求:定义一个一个函数得到一个数字或字符串值的长度
function getLength(data:number|string):number{
if((<string>data).length){
//return (<string>data).length
return (data as string).length
}else{
return data.toString().length
}
}
console.log(getLength(100))
console.log(getLength('1000'))

15.类型推断
在没有明确的指定类型的时候推测出一个类型
let txt1=100 //number类型
//txt1='100' 编译不通过
console.log(txt1)
let txt2; //any类型
txt2=1000
txt2=false
console.log(txt2)

本文详细介绍了 TypeScript 中的基本数据类型,包括布尔型、数字型、字符串型,以及更复杂的 undefined 和 null 类型,数组、元组、枚举、any、void、object、联合类型、类型断言和类型推断等。强调了类型安全性和如何在实际编程中使用这些类型。
422

被折叠的 条评论
为什么被折叠?



