文章目录

  • 01.布尔类型boolean
  • 02.数字类型number
  • 03.字符串string
  • 05.总结
  • 06.undefined和null
  • 07.数组类型
  • 08.元组类型
  • 09.枚举类型
  • 10.any类型
  • 11.void类型
  • 12.object类型
  • 13.联合类型
  • 14.类型断言
  • 15.类型推断


01.布尔类型boolean

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

typescript split typescript split数字_数据类型

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)

typescript split typescript split数字_数据类型_02

03.字符串string

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

typescript split typescript split数字_数组_03

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

typescript split typescript split数字_typescript_04

05.总结

  • ts中变量一开始是什么类型,那么后期赋值的时候,只能用这个类型的数据,不允许使用其他类型的数据赋值给当前的这个变量

06.undefined和null

  • undefinednull都可以作为其他类型的子类型,把undefinednull赋值给其他类型的变量
//需要关闭严格模式,否则编译不通过
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)

typescript split typescript split数字_typescript split_05

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)

typescript split typescript split数字_typescript split_06

  • 注意问题:数组定义后,里面的数据的类型必须和定义数组的时候是一致的,否则有错误提示信息,也不会编译通过的

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))

typescript split typescript split数字_typescript_07

  • 注意问题:元组类型在使用的时候,数据的类型的位置和数据的个数,应该和在定义元组的时候的数据类型及位置应该是一致的

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])

typescript split typescript split数字_数据_08

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

typescript split typescript split数字_typescript split_09

10.any类型

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

typescript split typescript split数字_数据_10

当一个数组中要存储多个数据,个数不确定,类型不确定,此时可以使用any类型来定义数组

let arr:any[]=[100,'哈哈',true]
console.log(arr)

typescript split typescript split数字_typescript split_11

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

typescript split typescript split数字_typescript_12

11.void类型

在函数声明的时候,在小括号后面使用:vold,代表该函数没有任何的返回值

function showMsg():void{
    console.log(new Date())
    //return '100'  编译不通过
    //return undefined  输出undefined
    return null  //输出null
}
showMsg()
console.log(showMsg())

typescript split typescript split数字_数据_13


定义一个void类型的变量,可以接受一个undefined的值,但是意义不大

let vd:void=undefined
console.log(vd)

typescript split typescript split数字_数据_14

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))

typescript split typescript split数字_typescript split_15


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

typescript split typescript split数字_数据类型_16


console.log(getObj(String))

typescript split typescript split数字_数据_17

13.联合类型

表示取值可以为多种数据类型中的一种

//需求1:定义一个函数得到一个数据或者字符串值的字符串形式值
function getData(data:number|string):string{
    return data.toString()
}
console.log(getData(123))
console.log(getData('999'))

typescript split typescript split数字_typescript split_18

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'))

typescript split typescript split数字_数组_19

15.类型推断

在没有明确的指定类型的时候推测出一个类型

let txt1=100  //number类型
//txt1='100'  编译不通过
console.log(txt1)


let txt2;    //any类型
txt2=1000
txt2=false
console.log(txt2)

typescript split typescript split数字_数据类型_20