TypeScript | 青训营笔记

71 阅读2分钟

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

简介

TS 与 JS 的区别

JS 是动态类型;弱类型语言 TS是静态类型;弱类型语言(包含兼容js的特性)

静态与动态类型

静态类型

静态类型在编译的时候,编译器基于所声明的数据类型确定变量的类型 (就是嗦,我们的变量需要声明类型,比如我们常写的c++) image.png

动态类型

动态类型,在运行是,解释器基于变量值得到类型决定变量的类型 (就是捏,比如我们的js,我们声明变量的时候都是var,const,let,并没有指出他的变量类型)

强类型与弱类型

强类型语言

就是嗦,如果我们定义了一个变量的类型,我们不强制转换他,他的类型是不会改变滴比如c++,Python等

弱类型语言

就是嗦,某个变量被定义了类型,但是这个变量可以根据环境进行转换,不需要经过强制类型转换,比如js,php,vb等等

基本语法

基础数据类型

字符串(string)、数字(number)、布尔值(boolean)、null、undefined

对象类型

定义一个对象

interface 对象名{}

大写的I开头表示数据类型

readnoly 某个变量:类型--(只读属性)

变量名?:变量类型--可选属性,可有可无

[key:类型]:any--任意属性,满足这个式子即可 例如:

image.png

函数

函数定义

(1)

image.png (2)

image.png

函数重载

数组

image.png

补充类型

空类型

type 变量=()={}

任意类型

type 变量=any

枚举类型

支持枚举值到枚举名的正反向映射 enum 变量{······} image.png

泛型

不预先指定具体的类型,而在使用的时候再指定类型的一种特性 type 变量名=<T>(变量名1:T)=>T[]

image.png

泛型约束

extends关键字

image.png

泛型参数默认类型

image.png

指定固定值

image.png

高级类型