TypeScirpt基础知识笔记

  1. 通过let a :number 来制定a的类型必须为 number类型。

       ep: a = ‘hello' 	//报错
           a = 20 	//正确。
    
  2. 如果变量声明和赋值同时进行,ts自动对变量进行类型检测。

    let a = 20	//自动认定a为number类型。
    
  3. typescript类型:number/boolean/string/object/any/array/tuple/字面量/void/enum{}/unknown等,javascript里有的没的ts里都有。

  4. unknown和any的区别

    1. 前者实际上是一个类型安全的any;
    2. any类型变量可以赋值给其他类型的变量,而unknown类型赋值给其他类型会报错
    3. 能用unknown尽量优先使用unknown。
  5. 类型断言:手动指定一个值的类型。
    写法一: 变量 as 类型;-> s = e as string [在tsx(React的jsx语法的ts版)中必须使用写法一]
    写法二:<类型>变量;-> s = e

  6. ts可指定函数返回值类型

     ep:	function mySum(a: number, b: number): number {
    	         return a + b;
    		}	//指定函数的返回值类型为number
    
  7. void类型:用来表示空,以函数为例,就表示没有返回值

  8. never类型:永远不会返回结果,常用于报错

  9. {}类型:用来指定对象中可以包含哪些属性,在属性名后加’?'表示属性是可选的

    • 可选参数必须在必选参数之后,换句话说,必选参数之前不能有可选参数,当函数存在默认参数时,不受此规则的限制。

       ep: let b: { name: string; age?: number };
              b = { name: "小明", age: 18 };
      
  10. 对象中存在[proName:string]:any
    ​ 表示任意类型的属性

       ep: let c: { name: string; [proName: string]: any };
       	c = { name: "小红", age: 18, gender: "男" };
    
  11. 数组的类型声明:
    写法一:类型[];
    写法二:Array<类型> (也叫数组泛型)

  12. .tuple元组:就是固定长度的数组,存储效率相比数组更好

    ​ 写法:[类型,类型,类型]

  13. 类型的别名

       ep: type myType = 1 | 2 | 3 | 4 | 5;
    	       let k: myType;
    	       let l: myType;
    	       let m: myType;
    	       k = 2;
    
  14. 实现typescript的实时监听转化:
    方法一:在终端通过 tsc xxx.ts -w 命令来实现对当前ts文件的监听,实时编译转化成最新的js文件。
    缺陷:只能对当前ts文件进行监听,如果有多个ts需要打开多个终端,适用范围窄。
    方法二:在当前文件夹下,创建tsconfig.json文件,代码块只需1行 {} 来符合json文件的格式要求,在终端输入 tsc -w 即可对当前文件夹下的ts进行实时转化和监听。

  15. 在属性名前加 readonly 实现该属性只在创建时被赋值

       ep: interface Person {
           readonly id: number;
           name: string;
           age?: number;
           [propName: string]: any;
       }
       let tom: Person = {
           id: 89757,
           name: "Tom",
           gender: "male",
       }; //修改 tom.id = 666,则报错
    
  16. typescript中的函数表达式

     let mySum = function (x: number, y: number): number {
               return x + y;
           };
    

    ​ 上面的代码只对等号右侧的匿名函数进行了类型定义,而等号左边的 mySum,是通过赋值操作进行类型推论而推断出来的。
    ​ 若需要手动 mySum 添加类型,则为️:

       let mySum: (x: number, y: number) => number = function (x: number, y: number): number {
               return x + y;
           };
    
  17. =>在typescript和javascript中的区别:
    在 TypeScript 类型定义中,=> 表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型。
    在 ES6 中,=> 为箭头函数。

  18. 重载:允许一个函数接受不同数量或类型的参数时,作出不同的处理。

       ep: function myReverse(x: number | string): number | string | void {
               if (typeof x === "number") {
                   return Number(x.toString().split("").reverse().join(""));
               } else if (typeof x === "string") {
                   return x.split("").reverse().join("");
               }
           }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值