TypeScript入门 | 青训营笔记

41 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第10天

背景

  • 动态类型语言——执行阶段确定类型的匹配

  • 静态类型——先编译,再执行

——>

  1. 可读性增强:基于语法解析TSDoc,ide增强
  2. 可维护性增强:在编译阶段暴露大部分错误
  3. 多人合作的大型项目中,获得更好的稳定性和开发效率
  • 弱类型语言——会进行类型转换

  • js的超集

  1. 包含于兼容所有JS特性,支持共存

  2. 支持渐进式引入与升级

基本语法

基础数据类型

对象数据类型

函数类型

特性——函数重载/编译时的多态

函数名相同,但是函数形参不同,编译器会根据调用参数的不一样来选择函数->同一函数完成不同的功能

——>

改正:

interface IGetDate{
	(type:'string',timestamp?:any):string;
}

数组类型

补充类型

泛型

不预先指定具体的类型,而在使用的时候再指定类型的一种特性

泛型约束——限制泛型必须符合字符串

泛型参数默认类型

补充

type——类型别名

类型断言

字符串/数字 字面量

高级类型

联合/交叉类型

隐患:type只能是'history'或'love'

——>改进:

  • 联合类型 IA | IB —— 一个值可以是集中类型之一

  • 交叉类型 IA & IB —— 多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性

类型保护与类型守卫

解决——>(当两个类型完全没有任何重合点的时候)

函数返回值类型

工程应用

web

nodejs