深入浅出TypeScript

51 阅读2分钟

TypeScript VS JavaScript

TS包含JS
TSJS
JS的超集,用于解决大型项目的代码复杂性一种脚本语言,用于创建动态网页
强类型,支持静态和动态类型动态弱类型语言
可以在编译时发现并纠正错误只能在运行时发现错误
不允许改变变量的数据类型变量可以被赋值成不同数据类型
TS优势:(不仅仅是一门语言,更是生产力工具)
类型安全
下一代JS特性
完善的工具链

学习地址:

Awesome Typescript:TS开源教程及应用
ByteTech:TS&React:React+TS开发模式介绍
Typescript Playground:ts到js在线编译

TS基础-基础类型

1.booleannumberstring
2.枚举enum
3.any,unknow,void
4.never
5.数组类型【】
6.元组类型

interface

定义:接口是为了定义对象类型

定义:写法跟js差不多
增加了publicprivate,protectef等修饰符
抽象类:只能被继承,不能实例化。做为基类,抽象方法必须被子类实现

TS进阶

1,联合类型 |
2,交叉类型 &
3,类型断言
4,类型别名type VS interface
    定义:给类型起别名
    interface:接口
    type:定义

泛型

组件不仅支持当前数据类型,也支持未来的数据类型
语法:<>里面写类型参数,一般用T表示
     有两种指定类型:定义要使用的类型/通过TS类型推断,自动推到的类型
     泛型的作用是临时站位,之后通过传来的类型推导

泛型工具类型-基本操作符

typeof:获取类型
keyof:获取所有键
in: 遍历枚举类型
T【k】:索引访问
extends:泛型约束
TypeScript实战

声明文件

declare:三方库需要声明文件
.d.ts:声明文件定义
@types:三方库TS类型包
tsconfig.json:定义TS的配置

泛型约束后端接口类型

可能出现的错误情况:
路径错误
参数错误