ts-02 基础类型

字符串类型

  • let str: string = '123'
    let str: string = 123 //error
    

数字类型

  • let num1:number =NaN
    let num2:number =Infinity // 无穷大
    let num3:number = 101010 // 二进制
    // 也支持 16 10 8 进制
    

布尔类型

  •   let b1: boolean = true 
      let b2: boolean = Boolean(1) // 可以通过函数返回布尔值
    

Null 和 undefined类型

  • 可以穿插使用,但是一般不这么写
  let a: null = undefined
  let b: undefined = null

void类型

  • 代表空值类型,不能赋值,也不能有返回值,void 可以声明 null 和 undefined ,但是不能赋值
    •  let a: void = null
       let b: void = undefined
      
  • 变量赋值
    •  let v: void = undefined
       let u: undefined = undefined
       let str = '123'
      
       str = v // 报错
       str = u //ok
      
  • 定义函数
    •  function fn(): void {
         return 'xxx'
       }
      
  • 如果在定义null的时候报错,查看是否开启了 严格模式
    • image.png

unknown 和 any类型

  • unknown 可以赋值任何类型
    •  let b: unknown = '嘻嘻嘻嘻'
       b = 1
       b = '1'
       b = true
       b = {}
       b = []
       b = Symbol(123)
      
  • any 可以赋值任何类型 同上
  • 两者的区别
    • unknown 类型 比 any 类型 更安全
    • unknown 是不可以使用任何属性和方法的 any 是可以的
    •  let u: unknown = { name: '盲仔' }
       u.a // error
       
       let u: unknown = { a: (): string => 'xxx' }
       u.a() // error
       
       let u: any = { name: '亚索' }
       u.a // ok
       
       let u: any = { a: (): string => 'eee' }
       u.a() // ok
      

数组类型

元组类型

  • let list: [string, number] = ['盲仔', 12]
    
    // list.push(true) // error 因为没有定义 boolean类型
    list.push(123) 
    

枚举类型

Never类型

  • 表示一个状态不存在
  • 一般用到的场景
    • 抛出异常
      • 这个函数 没有返回值,一进这个函数就会抛出异常 所以定义成 never类型
      •   function fn(p: string): never {
            throw new Error(p)
          }
        
    • 死循环
      • 死循环,所以 fn1 将不会有返回值
      •   function fn1(): never {
            while (true) {}
          }
        
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容