美文网首页
ts数据类型

ts数据类型

作者: 北冥有咸鱼_ | 来源:发表于2020-04-23 15:54 被阅读0次

    TypeScript 不是「强类型」,是「静态类型检查」的「弱类型」。
    ts的数据类型:

    布尔类型 boolean
    数字类型 number
    字符串类型 string
    数组类型 array
    元组类型 tuple
    枚举类型 enum
    任意类型 any
    null
    undefined
    void
    never

    ts在定义变量的时候必须指定类型

    boolean类型 true/false

    let flag:boolean = true //flag只能是boolean类型,更改为其他类型会报错
    

    number类型

    let num:number = 2
    

    String类型 number

    let str:string = 'hello,world'
    

    Array类型

    两种方式:

    let arr:number[] = [1,2,3] //数组里的元素都是number类型
    

    2.泛型

    let arr:Array<number> = [1,2,3]
    

    同理其他都行

    Tuple类型 元组

    是Array的一种,可以在同一个数组里指定多个类型的元素

    let arr:[string,number,boolean] = ['hello',1,true]
    

    注意:必须按顺序写,也不能缺少

    enum 枚举类型

    enum Flag{
      success = '200', error = '500'
    }
    let f:Flag = Flag.success
    console.log(Flag.error) //'500'
    

    主要用于标识状态或者固定值

    enum Color {red,white=4,orange}
    let c:Color = Color.red
    console.log(c) //0
    let white = Color.white //4
    console.log(Color.orange) //5
    

    如果不赋值,那就默认打印出索引(index),如果中途有人被赋值了,那下一个就跟着上一个+1

    enum Color {red,white='#fff',orange}
    let c:Color = Color.red
    

    会报错:说让你给orange设置一个初始值。


    报错信息
    enum Color {red,white='#fff',orange="#f00"}
    let c:Color = Color.red
    

    这样就可以了,不过,最好不要

    任意类型 any

    上面说的各种类型,定义了类型之后再赋值成别的类型就会报错。

    let any_num:any = 1
    any_num = '123'
    

    可以修改any_num的数据类型不会报错

    null和undefined

    let num:number; //console下num会报错
    let num:undefined;
    console.log(num) //undefined
    
    let num:number | undefined
    num //undefined
    

    null同理
    一个元素可能是number可能是null可能是undefined
    其实直接any就可以
    也可以

    let a: number | null | undefined
    

    viod

    ts中的void表示没有任何类型,一般用于定义方法的时候方法没有返回值后

    //es5
    function fun(){}
    fun();
    
    //ts 中如果方法没有返回值,一般用以下写法,表示方法没有返回任何类型
    function fun():void {}
    fun();
    
    //ts 如果方法有返回值
    function fun():number{
      return 1
    }
    fun();
    

    never类型(基本不会用到)

    never类型是其他类型(包括null和undefined)的子类型,代表从不会出现的值

    let a:never;
    a = 123 //报错
    
    a = (()=>{
      throw new Error('错误')
    })()
    

    相关文章

      网友评论

          本文标题:ts数据类型

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