p4 TS --TS中的类型

类型

number

string

boolean

字面量

  • 限制该变量的值就是该字面量的值
    //直接使用字面量进行类型声明
    let a: 10  //a的值只能是10 
    a = 10   //a = 20或其它值是错的
    //可以使用 | 连接多个类型(联合类型)
    let b:'male' | 'female'
    b = 'male'
    b = 'female'
    
    let c:boolean | string
    c = true
    c = 'hello'
    

any

  • any 表示任意类型,一个变量设置类型为any相当于对该变量关闭TS的类型检测
  • 使用ts不建议使用any类型
  • 声明变量如果不指定类型,则TS会自动判断类型为any(隐式any)
      let d  //或 let d :any
      d = 10
      d = true
      d = 'hello'
    

unknown

  • 表示未知类型的值
  • unknown 实际上就是一个类型安全的any
  • unknown 类型的变量不能直接赋值给其他变量
    let e :unknown
    e = 10
    e = 'hello'
    e = true
    
    let s :string
    //d的类型是any,它可以赋值给任意变量
    //s = d
    
    if(typeof e === 'string'){
    s = e
    } 
    //类型断言,可以用来告诉解析器变量的实际类型
    s = e as string
    

void

  • 用来表示为空,以函数为例,表示没有返回值的函数
  • 空值(undefined)
    function fn2():void{}
    

never

  • 表示永远不会有返回值

    function fn3() : never{
     throw new Error('报错了')
     }
    

object

  • 表示一个js对象
  • {}用来指定对象中可以包含哪些属性
  • 语法:{属性名:属性值,属性名:属性值}
  • 在属性名后面加一个 ? 表示属性是可选的,可以用也可以不写
  • [propName:string]:any 表示任意类型的属性(对象里面不知道具体有多少个属性一一对应时可以用)
  • 设置函数结构的类型声明
    • 语法: (形参:类型,形参:类型…) => 返回值
    let b:{name: string}
    b ={name:'你好'}
      
    let c: {name:string, age?:number}
    c = {name:'hello',age:18}
    
    let d:{name: string,[propName:string]; any}
    d = {name:'张三',age:18,gender:'男'}
    
    let fn: (a:number, b:number) => number
      fn = function(n1:string, n2:sting):number{
      return 10
       }
    

array

  • 类型[]

  • Array<类型>

    let e: string[]
    e = ['a','b','c']
    
    let g Array<number>
    g = [1,2,3]
    

tuple(元组)

  • 元组是固定长度的数组

  • 语法:[类型,类型,…]

    let h = [string,number]
    h = ['hello',123]
    

enum(枚举)

enum Gender{
 Male = 0,
 Female = 1
}
let i: {name:string,gender:Gender}
i = {
 name:'冰墩墩',
 gender:Gender.Male
}
console.log(i.gender === Gender.Male)

补充

//1. &表示同时
let j:{name:string} & {age: number} 
j = {name:‘雪容融’,age:18}

//类型的别名
type myType = 1 | 2|3|4
let k: myType
let l:myType
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值