这是我参与「第五届青训营」伴学笔记创作活动的第 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,可以返回自己的值,也可以返回自己的值的类型。