美文网首页
Ts的基础数据类型

Ts的基础数据类型

作者: 文菇凉666 | 来源:发表于2022-11-27 13:19 被阅读0次

    Ts中 string number boolean

    let username:string='xiaosan'
    let age:number=20
    let flag:boolean=true
    

    Ts中的数组

    let arr:string[]= ['1','2','3']
    let num:number[]=[1,2,3]
    

    Ts中的对象

    let obj:{username:string,age:number}={username:"xiaosi",age:20}
    //如果可以属性可以省略可以加问号
    let user:{username:string,age?:number}={username:"xiaowu"}
    

    TS中的联合类型

    //参数id的类型可以是string或者number
    function  fun(id:string|number){
        //可以使用类型收窄 就是利用数据类型判断加逻辑
        if(typeof id == "string"){
            return id.toUpperCase()
        }else{
            return id
        }
    }
    

    TS中类型别名

    如果类型数据一样,数据有好多份,可以给类型起别名,别的地方复用即可

    type Goods={name:string,price:number};
    let goodsobj1:Goods={name:"苹果",price:20}
    let goodsobj2:Goods={name:"橘子",price:21}
    

    TS中的any类型

    如果定义一个函数,函数参数的数据类型任何类型都可以的话,可以使用any
    默认的情况下不给也不会报错,但是为了规范我们可以设置ts的配置文件
    tsconfig.json

    {
        "compilerOptions":{
            "noImplicitAny": true
        }
    }
    
    function test(message:any){
    
    }
    

    ts中函数的返回值

    //返回值为数字型的函数
    function test(message:any):number{
        return 123
    }
    //返回值为无类型
    function test2(message:any):void{
    
    }
    

    接口类型 interface

    可以定义让用户可以扩展的数据类型展示,能用interface就用interface 不能用的话可以使用type

    //接口类型 interface
    interface Person{
        name:string,
        age?:number
    }
    //接口可以扩展 继承
    // interface Student extends Person{
    //     male:string
    // }
    // const obj:Person={name:"小三",age:20}
    // const stu:Student={name:"小四",male:"男"}
    
    //接口类型也可重复定义
    interface Person{
        male:string
    }
    const stu:Person={name:"小苏",age:20,male:"女"}
    

    断言 Assersion

    断言是绕过ts的类型检测
    语法:let 变量:类型=值 as 断言的类型
    或者 let 变量=<断言类型>值

    let domobj:HTMLElement=document.getElementById("#root") as undefined
    let domobj2=<undefined>document.getElementById("#root")
    

    字面量类型

    大白话 字面量类型就是字面的意思

    设置的类型为字面量‘123’  那么变量的值只能是123 否则报错
    const str:'123'='123'
    

    一般会用在限制函数参数的地方

    function setPosition(position:'left'|'right'):string{
        return position
    }
    setPosition('top')//报错
    setPosition('left')//不报错
    
    function request(url:string,method:'GET'|'POST'):string{
        return '我要发请求'
    }
    const params:{url:string,method:string}={url:'/user',method:"GET"}
    request(params.url,params.method)
    

    null undefined

    默认情况下这两种类型可以互换,如果需要严格校验的话需要设置参数
    "strictNullChecks": true

    const testNull:null=null
    const testUndefind:undefined=undefined
    
    function  test(str:string|null){
    //类型收窄
        if(typeof(str)=="string"){
            return str.toLowerCase()
        }
    }
    

    相关文章

      网友评论

          本文标题:Ts的基础数据类型

          本文链接:https://www.haomeiwen.com/subject/gcvcfdtx.html