知识点

  1. 类型可以显式的进行声明也可以被Ts进行类型推导
  2. let var const 都是可以使用的
  3. string 和String的声明不一样,一个是string类型 一个是 String包装对象
  4. es6 之后不再推荐使用var 声明变量
  5. 函数的返回值 声不声明类型看个人使用 会有类型推导
数组

数组在Ts开发中, 存放的数据类型最好是固定的,也就是类型是确定的

类型系统 - 图2

类型系统 - 图3

推荐使用第二种,第一种写法 对于Vue 或者 React 的 jsx 是有冲突的,模板编译的时候 编译器没法理解究竟是什么, 除非你并不打算使用 jsx语法

对象
  1. ![](https://cdn.nlark.com/yuque/0/2022/png/2504914/1647052587380-5153cb36-1dea-4c41-a9f8-4a6a698313ea.png)

对象类型 可以被 推导出来, 不需要去显式的声明它

对象参数

类型系统 - 图4

特殊类型

null 、 undefined 、 unknow不确定的变量 any任意类型或者值的变量

void 声明了 没有返回值的函数 一般来说 void可以不用声明 它可以被类型推导

never never类型 声明了一个函数 永远不会有返回值 或者结果

tuple 元组类型 多种元素的组合 它类似后端语言中的集合

类型系统 - 图5

内部函数以及匿名函数中,一些情况下会根据上下文的环境自动推导 参数的类型

类型系统 - 图6

联合类型

可以理解为并集选择器,声明多个类型

类型系统 - 图7

类型别名

type用于定义类型别名

类型系统 - 图8

也可以声明对象结构

类型系统 - 图9

类型断言

类型系统 - 图10

因为HTMLELment元素上 本身是有src这个属性的,这个时候就要用断言精确到某一类型

类型系统 - 图11

类型系统 - 图12

非空类型断言 和可选链操作

非空断言用于声明非 undefined 或null 类型的值 可以逃过编译系统的错误提示

类型系统 - 图13
字面量类型

类型系统 - 图14

结合类型断言

类型系统 - 图15