TypeScript入门 | 青训营笔记

37 阅读2分钟

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

1、TS发展历程

image.png

2、为什么选择TS

image.png TS与JS的共同点:都属于弱类型语言,也就是说,支持数据类型的隐式转换,而像后端的Java,Python等等不支持隐式类型转换,属于强类型语言

两者的不同点在于:JS是动态语言,在没有使用数据时,数据类型是不可知的,因为它们都用统一的var,let,const作为了标识,数据类型,不清楚到底是用来做字符串类型,数字类型,布尔值,null,还是undefined类型

相比而言,TS为静态类型,即在声明为const类型的同时,也表明了具体的数据类型

使用“ : ”冒号,在后面写出具体的数据类型, 为静态类型语言

image.png TypeScript为JavaScript的超集,支持所有的js语法特性,可以与JS并存,

而且通过渐进式的方法,逐步把JS代码改造成TS代码

image.png

3、TS的基本语法

对象类型

image.png

在这个案例中,TS实际上最少需要包含4个属性:name,sex,age,jobId

只读属性

 readonly jobId: number;

jobId属于只读类型,即在声明之初就写定了值,后期不可以再度修改了,需要在前面添加readonly关键字

可选属性

 hobby?: string;

hobby属于可选类型,可写可不写,需要在hobby后面添加“?”,来表示属性类型

任意属性

 [key: string]: any;

首先在中括号外面,以冒号为分隔,前面为数据属性,即为string类型,值为任意值

函数类型

image.png

图中第一个为JS的函数声明方式,右边的和下面的两种为TS的函数声明方式

下面的TS函数声明方式,不推荐使用,因为这样写有些破坏了函数的结构,看起来不美观,不直接,在函数体声明中定义了函数参数的类型,与返回值的类型

而右边的TS函数声明方式,推荐使用。写法清晰明了,使用interface作为关键字,接口,在函数体内部写明参数的数据类型和返回值的数据类型,

然后在调用时,只需使用冒号来引用函数,使用箭头函数来操作函数即可

 interface IMult {
     (x: number, y: number);
 }
 const mult: IMult = (x, y) => x * y;