TypeScript1 | 青训营笔记

58 阅读2分钟

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

一、什么是TypeScript

1.TypeScript的发展历史

image.png

2.JavaScript和TypeSctipt的区别

image.png 静态类型和动态类型的本质区别在于:变量的数据类型确定的时机不同,前者在运行时根据变量值确定;后者在编译时根据声明类型确定。

二、TypeScript基本语法

1.基础数据类型

左边是js,右边是ts,在js的基础上,我们需要在变量名后面加一个冒号,并在后面写上类型

image.png

2.对象类型

这里就全是ts了,左边是定义变量,右边是声明类型,为了方便区分,我们通常将类型名前加一个大写的I,interface是接口,我们用这个关键字来定义类型,正常书写的就是不可缺省的常规属性,带问号的是缺省属性,在声明对象的时候可写可不写,带方括号的就是自定义属性,方便后续添加,在这个时候我们也不知道这个属性的类型或者是名字,于是我们先用方括号括起来。 注意:不可缺省类型的属性不能在对象初始化外赋值。

image.png

3.函数类型

在函数类型中,ts也同样支持通过interface定义类型的形式来定义函数,这样可以不用向左下方的图片一样写很长的代码,比较简洁

image.png

4.函数重载

(这部分没有批注讲解 这个这个的给我听晕了)不过大概是类型匹配的问题

image.png

5.数组类型

image.png 这里泛型表示讲的不清楚,这段代码比较容易理解

let arr: Array<string> = ['bonjour', 'hello']
let arr2: Array<number> = [1, 2]
let arr3: Array<any> = [1, 2, 'hh']

6.其他补充类型

image.png 比较重要的就是泛型

7.泛型

image.png

image.png 第一个代码块中用到的extends这个关键字就是将t这个泛型约束在string,第二个默认类型也是约束的作用,默认认为泛型t就是number类型

8.别名&断言

注意reduce方法中最后一个参数是初始值 image.png