这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
简介
TS 与 JS 的区别
JS 是动态类型;弱类型语言 TS是静态类型;弱类型语言(包含兼容js的特性)
静态与动态类型
静态类型
静态类型在编译的时候,编译器基于所声明的数据类型确定变量的类型
(就是嗦,我们的变量需要声明类型,比如我们常写的c++)
动态类型
动态类型,在运行是,解释器基于变量值得到类型决定变量的类型 (就是捏,比如我们的js,我们声明变量的时候都是var,const,let,并没有指出他的变量类型)
强类型与弱类型
强类型语言
就是嗦,如果我们定义了一个变量的类型,我们不强制转换他,他的类型是不会改变滴比如c++,Python等
弱类型语言
就是嗦,某个变量被定义了类型,但是这个变量可以根据环境进行转换,不需要经过强制类型转换,比如js,php,vb等等
基本语法
基础数据类型
字符串(string)、数字(number)、布尔值(boolean)、null、undefined
对象类型
定义一个对象
interface 对象名{}
大写的I开头表示数据类型
readnoly 某个变量:类型--(只读属性)
变量名?:变量类型--可选属性,可有可无
[key:类型]:any--任意属性,满足这个式子即可
例如:
函数
函数定义
(1)
(2)
函数重载
数组
补充类型
空类型
type 变量=()={}
任意类型
type 变量=any
枚举类型
支持枚举值到枚举名的正反向映射
enum 变量{······}
泛型
不预先指定具体的类型,而在使用的时候再指定类型的一种特性
type 变量名=<T>(变量名1:T)=>T[]
泛型约束
extends关键字