小王的ts学习笔记(一)

开发环境创建
  1. 使用npm下载typeScript(npm -g install typescript)
  2. vscode插件(JavaScript and TypeScript Nightly)
为什么要用ts
  1. js易学易用,但是开发过程中会有很多安全隐患,维护成本高。
  2. js变量是动态类型,但是带来了安全隐患。
  3. ts是以js为基础构建的语言,完全支持js,在js的基础上新增了一些其他的东西,是js的超集
  4. ts扩展js,增加了类型,在语法上增加了限制,可以在任何支持js的平台中执行,但是不能被js解析器直接执行,需要编译为js,执行的最终还是js文件。js中的类型是相对于值的,ts中的类型还相对于变量(个人认为类似于其他强类型语言),ts中还新增了一些js里没有的类型。
  5. 支持es的新特性(因为ts完全支持js),可以在ts文件里直接写js代码。
  6. 增加了es不存在的新特性
  7. ts拥有丰富的配置,ts语法要求可以配置是否严格,可以配置编译成js的任何版本,以进一步解决浏览器之间的兼容性问题。
ts类型
  1. js中原本有的类型:number、string、boolean。

     示例:
    	 在js中函数是不考虑参数的类型和个数的
    	 let c:boolean=true;//声明变量直接赋值一般不用这样写
    	 let c = true;//直接赋值为true,这时c就是boolean值
    	 function greeter(person: string) {
    	     // : string 指定person的类型为string
    	     // 虽然报错但是还是会被编译成为js文件
    	     return "Hello, " + person;
    	 }
    
  2. 直接使用字面量进行类型声明

     //  let a :10;相当于常量,不能重新赋值
       let b:"male" | "female";//可以使用 |来连接多个类型(联合类型)
       类型的别名,常用于联合类型
       type myType = string|number;
       let m:myType
    
  3. any。
    表示任意类型,设置any相当于对该变量关闭了ts的类型检测,let a:any; 相当于let b; 一般不建议使用

  4. unknown
    表示未知类型,unknown实际就是一个类型安全的any,unknown类型不能直接赋值给其他变量,可以判断,也可以使用类型断言

      断言语法:
       变量 as 类型;  s = e as string;
       <类型>变量;  s = <string>e;
    
  5. void
    用来表示空,返回值为空

    function fn():void{
    // void 表示没有返回值(undefined,null)
    return;
    }
    return;
    return undefined;
    return null;
    
  6. never
    表示永远没有返回值,连空都没有

  7. object(对象)

     {}用来指定对象中可以包含哪些属性
     语法 :{属性名:属性值,属性名:属性值}
     在属性名后加问号表示属性可选
     [propName:string]:any  //表示任意类型的属性,表示对象中可以有任意属性
     let a : {name:string,[propName:string]:any};
     // a = {}报错
     a = {name:''}
     // 表示f是一个函数,且有两个类型为number的参数同时返回值也是number
     let f: (a:number,b:number) => number;
     f= function(a,b) {
        return a+b;
     }
     设置函数结构的类型声明
     语法:(形参:类型,形参:类型 ...) => 返回值类型
    
  8. array(数组)

    // string[]表示字符串数组
     let e:string[];
     e = ['a','b']
     let d:Array<number>;
     d = [1,2,3]
    数组的类型声明:
    类型[]
    Array<类型>
    

    以上是js中原有的类型
    以下是ts中新增的类型

  9. tuple(元组,是指固定长度的数组)

    语法:[类型,类型]
    let h:[string,string]
    
  10. enum 枚举

    举例:
       enum Gender{
           Male = 0,
           Female = 1
       }
       let i : {name:string,gender:Gender}
       i = {
           name:'xiaow',
           gender:Gender.Male
       }
    
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值