TS基础类型(三)

any+void+object+联合类型+类型断言+类型推断

 //any类型
    let str:any = 100
    str ='hahahaha'
    console.log(str)
    //当一个数组中要存储多个数据,个数不确定,类型不确定,此时也可以使用any类型来定义数组
    let arr:any[] = [22, "女", true]
    console.log(arr)
    //这种情况下没有错误的提示信息,编译成功了,在运行后会出错
    //console.log(arr[0].split(''))

    //void类型,在函数声明的时候,小括号的后面使用:void,代表的是改函数没有任何的返回值
     function showMsg():void{
         console.log('不要男妈妈')
         //return
         //return undefined
         return null
     }
     //由于没有返回值,输出为undefined
     console.log(showMsg())
    //定义void类型的变量,可以接收一个undefined的值,但以以不是很大
    let vd:void = undefined
    console.log(vd)

    console.log('----------------------------------------')
    
    //object类型
    //定义一个函数,参数是object类型,返回值也是object类型
    function getObj(obj:object):object{
        console.log(obj)
        return {
            name:'帅帅宝宝',
            age: 23
        }
    }
    console.log(getObj({name:'帅帅宝宝', sex:'男'}))
    //console.log(getObj('123')) //错误
    console.log(getObj(new String('123')))
    console.log(getObj(String))

    console.log('----------------------------------------')
    
    //联合类型表示取值可以为多种类型中的一种
    //需求1:定义一个函数得到一个数字或字符串值的字符串形式值
    function getString(str:number|string):string{
        return str.toString()
    }
    console.log(getString(123))
    console.log(getString('1213'))
    
    //需求2:定义一个函数得到一个数字或字符串的长度

    //类型断言:告诉编译器,我知道自己是说明类型的,也知道自己在干什么
    //类型断言的语法方式1:<类型>变量名
    //类型断言的语法方式1:值 as 类型
    function getlength(str:number|string):number{
        //return str.toString().length
        //如果str本身就是string类型,那么就不用调用toString()方法

        if((<string>str).length){
            //str.length存在吗?如果存在就说明str是string类型的
            //return (<string>str).length
            return (str as string).length
        }
        else{
            //此时说明str是number类型的
            return str.toString().length
        }
    }
    console.log(getlength(12345))
    console.log(getlength('0123456'))

    //类型推断:TS会在没有明确的指定类型的时候推测出一个类型
    //1. 定义变量时赋值了, 推断为对应的类型. 2. 定义变量时没有赋值, 推断为any类型
    let txt = 100   //number类型
    console.log(txt)

    let txt2;       //any类型
    txt2 = 100
    txt2 ='heihei'
    console.log(txt2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值