TypeScript入门 | 青训营笔记

47 阅读2分钟

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

TypeScript

什么是TypeScript

屏幕截图_20230119_160400.png

屏幕截图_20230119_160409.png

基本语法

基础数据类型

屏幕截图_20230119_160551.png

  • let/const 变量名:变量类型 = 值
  • 在ts中,为变量指定了类型,就只能给该变量设置相同类型的值

对象类型

屏幕截图_20230119_160919.png

  • interface 用来建立某种代码约定,使得其它开发者在调用某个方法或者创建新的类时,必须遵循接口所定义的代码约定

  • 接口的前面加了一个 I 字母

函数类型

屏幕截图_20230119_161851.png

  • 括号里面对参数进行声明
  • 括号外对返回值进行声明

函数重载

函数重载的定义

  • 一个或多个签名组合叫做函数重载
  • 外部调用函数重载时,只能调用重载的签名 (函数体前面的叫做签名)不能够调用使用的函数签名(这个是TS规定的)
  • 调用函数重载时会根据传递的参数来判定调用的那个函数
  • 只有一个函数体,只有实现签名配备了函数体,所有重载签名只有签名,没有配置函数体

函数重载的作用

  • 结构分明
  • 各司其职,自动提示方法和属性
  • 更利于拓展功能

屏幕截图_20230119_161906.png

数组类型

屏幕截图_20230119_162824.png

  • 为什么需要元组?

    TS中数组元素类型必须一致,如果需要不同元素,可以使用元组

  • 特点

    声明时,需要制定元素的个数

    声明时,需要为每个元素设置类型

    补充类型

屏幕截图_20230119_163143.png

屏幕截图_20230119_163154.png

屏幕截图_20230119_163209.png

类型别名&类型断言

屏幕截图_20230119_163456.png

extends关键字在此处的作用是 泛型约束 使得函数keyBy需要符合IObjArr的声明

  • as用于断言,语法规范为
    • 值 as 类型 = 值<类型>

字面量

屏幕截图_20230119_164735.png

高级类型

联合/交叉类型

屏幕截图_20230119_195318.png

屏幕截图_20230119_195440.png

类型保护与类型守卫

屏幕截图_20230119_195620.png

屏幕截图_20230119_195628.png

类型守卫主要方式

  • in关键字
  • typeof关键字
  • instanceof关键字
  • 自定义类型保护和类型谓词

工程应用

将写好的ts代码转成js文件然后再被浏览器进行解读

屏幕截图_20230119_195802.png

屏幕截图_20230119_195812.png