前端与 HTML | 青训营笔记

60 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 4 天.

一、本堂课重点内容:

  • 为什么使用ts,他与js的区别:
  • ts中的类型应用
  • 其他ts的小知识点

为啥用ts

ts相比与js,是更严谨的,他有变量的类型,在计算两个数之和,如1 + 2,如果是字符串,js也可以运行,但是得到12,这样的错误结果,ts可以赋予类型是静态变量,在遇到这种问题的时候,ide会自己报错帮助改正,代码更方便维护,可读性也会提高,减少改BUG的痛苦。 ts是js的超集,向下兼容js。

ts的语法

q:string q:10 有“:”就是说这个变量的类型或者数值就是死的了,不可改变。 q:string | number ; 是说q可以有2个数据类型。 any和unkown:any是说任意数据类型,unkown是未知数据类型,any可以赋值,但是unkown不能赋值给其他变量,其中as type可以告诉ide unkown是什么类型,可以辅助unkown赋值。 object:{}来表示 let b:{ name :string , age?:nunber } 一般{}里有的,都要赋值,有?的,就是可以选择的。 【propName:string】:any 是 可以有多个属性,名字是string,类型是any。 let b:(x:number,y:number)=>number; 希望b是一个有两个number参数的函数,返回值是number。 枚举:更像是去定义一个类 enum Gender{ male=0; female=1; }

接口、类

interface可以重复声明,他会取并集,可以和class和type对比一下,type只能声明一次,在里面写属性。 类与C++基本一致,abstruct是限定类只能做父类,如果函数也用关键词,则子类一定要重写这个函数,super是直接调用父类中的函数。

泛式

比如,写入什么输出什么的一个函数,如果用any,则完全扼杀了ts,但是用泛式T,可以返回自己的值,也可以返回自己的值的类型。