ts快速上手更新ing···

ts主要对JS起到一个规范作用

基础使用

 // 基本使用
  let str: string = '张三'//定义基本数据类型直接冒号接类型即可(官方推荐小写,也可以大写但会出问题)
  let str2:String = '李四' //大写模式也可以,但是只适用于new String()的时候
  let boo:boolean = true //布尔值
  let num: number = 123 //数字
  let und: undefined = undefined // undefined
  let nul: null = null // null 
  let big:bigint = 123n
  let sym: symbol = Symbol('symbol')  
  let any:any = '任意类型'//当ts报错或者实在不方便定义类型可以使用any类型
  let unk: unknown //与any相似但又有区别,比如将一个类型为string的变量x,可以将any定义的值赋给x却不能将unknown的值赋给x,除非类型断言
 //never一般用于定义函数的返回值,基本不用于变量定义,如果函数没有返回值即可使用never,一般开发中用的很少基本不用
  function fun():never{
    throw new Error('never return')//由于函数不写返回值也会默认返回一个undefined,而undefined不符合never规范
  }
  //void一般用于定义函数的返回值,如果没有函数没有返回值即可使用void,默认返回的undefined是符合void的规范的
  function fun2():void{
    return undefined//函数默认是会返回一个undefined的,所以此写法也可以
  }

对象类型使用

 let obj: object = { name: 'jack' } // 对象
  // 当为对象时只要不是基本数据类型都可以,比如
  obj = []; obj = ()=>{};obj = new String();
  // 当赋值基本数据类型的时候报错,比如
  // obj = '字符串';obj = 123;obj = true;obj = null;obj = undefined;

  let obj2:Object = { name: 'rose'}//大写对象
  // 当为大写对象时可以为部分基本数据类型,比如:
  obj2 = '字符串';obj2 = 123;obj2 = true;//因为普通的字符串或者数字都能使用点toString()方法,那就表示他们是属于Object范围的
  // 但是像null跟undefined依旧还是不属于Object
  /**  一般两个object开发中用的比较少,因为限制范围太广泛了* */

  let user:{name:string, email:string,[key:string]:any}//定义一个简单对象并规范类型
  user = {name:'jack', email:'jack@example.com'}
  // 往对象身上添加一个属性,有了索引签名后则可以往对象身上添加之前没有定于的属性
  user.phone = '10086'//此时如果没有加[key:string]:any则会报错,[key:string]:any表示索引签名,key表示占位符写啥都行可以是[index:string]:any

函数类型使用


  // 函数
  let func:(x:number,y:number)=>number;//表示函数的参数必须是两个且必须是数字类型,箭头后面表示函数返回值必须是数字 
  func = function(x,y){
    return x + y
  }
  func(2,3)

数组使用

  // 数组
  let arr: number[] = [1,2,3] // 数组定义
  // 数组可以定义泛型  
  let arr2: Array<number> = [1,2,3] // 泛型

枚举

// 枚举
    // 枚举的作用主要是起一个规范作用,比如在开发的时候只能在枚举的数据范围内使用某些值(枚举一般习惯性大写)
    enum Status {
      Primary,
      Success,
      Error,
      Info,
      Warning  
    }
    // 枚举也可以是字符串
   const enum Status2 {//在枚举前面加上const可以减少编译后的代码即只编译使用的枚举值
      Primary ='primary',
      Success ='success',
      Error ='error',
      Info ='info',
      Warning ='warning'  
    }
    console.log(Status);//打印值可以看到枚举的单位都对应一个递增的数字
    
    // 使用枚举
    function  getStatus(type:Status){//规定参数只能是枚举的值
      return '结果'
    }
    getStatus(Status.Primary)

type

 // type
    // 使用type我们可以定义自己的类型,比如:
    type StringOrNumber = string | number; // 定义一个类型,可以是字符串或者数字(一般习惯大写)
    let strOrNum: StringOrNumber = 'hello' // 定义类型为StringOrNumber的变量
    // 也可以定义两个对象的交集使用 & 符号
    type MyType = {
      name: string,
      age: number
    }
    let myObj: MyType = { name: 'jack', age: 18 } // 定义类型为MyType的变量

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值