TypeScript数据类型 -- tuple、enum、any、never、union、literal...

声明变量的关键字

  • let

  • const

  • var(官方不推荐再继续使用)



TypeScript 的类型

基础类型

  • number string boolean array null undefined object

  • tuple enum void never any

高级类型(部分)

  • union 组合类型 Nullable 可空类型 Literal 预定义类型



数字、布尔、字符串

  • number:表示 整数、浮点数、正负数

  • boolean:真 或者 假

  • string:""''``

    • 反引号:``,可以创建一个字符串模板



数组(Array)、元组(Tupple)

  • array:[] 存放任意类型的数据

    • let list1: number[] = [1, 2, 3]

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

    • let list3 = [1, 'abc']

  • tupple:固定长度、固定类型的特殊数组

    • let person : [number, string] = [1, 'abc']



联合(Union)、字面量(Literal)

  • union:支持多个类型的赋值

    • let union1: string | number
  • literal:支持指定值的赋值

    • let literal1: 1 | '2' | true | [1, '2', false]



枚举(Enum)

  • 默认从0开始,可以指定值

    enum Color{
      red,
      green = 3 ,
      blue = '蓝色'
    }
    
    let color1 = Color.blue
    console.log(color1)         // 蓝色
    console.log(Color.red)      // 0
    console.log(Color.green)    //3
    



Any、Unknown

  • any:动态支持任意类型

  • unknown:未知类型,比any的限制性大一点

    let randomValue:unknown
    
    if (typeof randomValue === 'function'){
      randomValue()
    }
    
    if (typeof randomValue === 'string'){
      randomValue.toUpperCase()
    }
    



函数返回值:void、undefined、never

  • void:没有声明的变量

    function onlyPrint1():void{
      console.log('---')
    }
    
  • undefined:申明的变量没有赋值

    function onlyPrint2():undefined{
      console.log('===')
      return
    }
    
  • nerver:执行不到终点

    • function throwErr(msg:string, code: number):never{
        throw{ msg, code }
        console.log('执行不到这里')
      }
      
    • function whileLoop():never{
        while(true){
          console.log('>>>')
        }
      }
      



类型适配 Type Assertions

  • 使用 Type Assertions 必须对自己的代码有 百分百 的把握才使用,不然运行时可能会出现类型错误

  • let msg:any
    msg ='strData'
    
    // 此时为 any类型 编辑器不会自动补全、联想出对应类型的方法
    console.log(msg.replace('t', 'o'))
    
    // 方法一:(<类型>变量名)
    console.log((<string>msg).toUpperCase())
    
    // 方法二:(变量名 as 类型)
    console.log((msg as string).split('a'))
    



函数的参数类型

  • 给函数的参数指定类型

    • let log1 = (msg:string) => console.log(msg)
      
  • ? 可使参数不用必须传递 默认值为 undefined

    • let log2 = (msg:string, code?:number) => console.log(msg,code)
      
  • 设置参数默认值

    • let log3 = (msg:string, code:number=2) => console.log(msg,code)
      
上一篇:Jakarta Bean Validation说明


下一篇:创建和插入DOM节点