原文配套视频资源获取链接:点击获取
原文配套源码资源获取链接:点击获取
课程大纲:
1.搭建开发环境
- (1) 前端开发环境
- (2) Node服务端开发环境
2.基础类型
- (1)布尔值
- (2)数值
- (3)字符串
- (4)数组
- (5)元组
- (6)枚举
- (7)any
- (8)void
- (9)null和undefined
- (10)never
- (11)object
- (12)类型断言
3.【赠课】ES6精讲 - Symbol
- (1)基础
- (2)作为属性名
- (3)属性名的遍历
- (4)Symbol.for和Symbol.keyFor
4.接口
- (1)基本用法
- (2)可选属性
- (3)多余属性检查
- (4)绕开多余属性检查
- (5)只读属性
- (6)函数类型
- (7)索引类型
- (8)继承接口
- (9)混合类型接口
5.函数
-
(1)函数类型
- i.为函数定义类型
- ii.完整的函数类型
- iii.使用接口定义函数类型
- iv.使用类型别名
-
(2)参数
- i.可选参数
- ii.默认参数
- iii.剩余参数
- (3)重载
6.泛型
- (1)基本用法
- (2)泛型变量
- (3)泛型类型
- (4)泛型约束
- (5)在泛型约束中使用类型参数
7.【赠课】ES6精讲 - 类Class基础
- (1)实现创建实例
- (2)constructor方法
- (3)类的实例
- (4)取值函数和存值函数
- (5)class表达式
- (6)静态方法
- (7)实例属性其他写法
- (8)静态属性
- (9)私有方法
- (10)私有属性
- (11)new.target属性
8.【赠课】ES6精讲 - 类Class继承
- (1)ES5中的继承
- (2)ES6中类的继承
- (3)Object.getPrototypeOf
-
(4)super
- i.作为函数
- ii.作为对象
- (5)类的prototype属性和__proto__属性
- (6)原生构造函数的继承
9.TS中的类
- (1)基础
-
(2)修饰符
- i.public
- ii.private
- iii.protected
- (3)readonly修饰符
- (4)参数属性
- (5)静态属性
- (6)可选类属性
- (7)存取器
- (8)抽象类
- (9)实例类型
-
(10)对前面跳过知识的补充
- i.类类型接口
- ii.接口继承类
- iii.在泛型中使用类类型
10.枚举
- (1)数字枚举
- (2)反向映射
- (3)字符串枚举
- (4)异构枚举
- (5)枚举成员类型和联合枚举类型
- (6)运行时的枚举
- (7)const enum
11.类型推论和兼容性
-
(1)类型推论
- i.基础
- ii.多类型推论
- iii.上下文类型
-
(2)类型兼容性
- i.基础
-
ii.函数兼容性
- 1.函数参数个数
- 2.函数参数类型
- 3.函数返回值类型
- 4.可选参数和剩余参数
- 5.函数参数双向协变
- 6.函数重载
- iii.枚举兼容性
- iv.类兼容性
- v.泛型兼容性
12.高级类型 - 1
- (1)交叉类型
- (2)联合类型
- (3)unknown
-
(4)类型保护
- i.自定义类型保护
- ii.typeof类型保护
- iii.instanceof类型保护
-
(5)null和undefined
- i.严格模式
- ii.可选参数和可选属性
- (6)类型保护和类型断言
- (7)类型别名
-
(8)字面量类型
- i.字符串字面量类型
- ii.数字字面量类型
-
(9)可辨识联合
- i.利用strictNullChecks
- ii.使用never类型
13.高级类型 - 2
- (1)this类型
-
(2)索引类型
- i.索引类型查询操作符
- ii.索引访问操作符
-
(3)映射类型
- i.基础
- ii.由映射类型进行推断
- iii.增加或移除特定修饰符
- iv.keyof和映射类型在2.9的升级
- v.元组和数组上的映射类型
-
(4)条件类型
- i.基础
- ii.分布式条件类型
- iii.条件类型的类型推断
- iv.TS预定义条件类型
14.【赠课】ES6和Node.js中的模块
-
(1)ES6的模块
- i.export
- ii.import
- iii.export default
- iv.import和export的复合写法
- v.import()
-
(2)Node.js的模块
- i.exports
- ii.module.exports
15.模块和命名空间
-
(1)模块
- i.export
- ii.import
- iii.export default
- iv.export =和import xx = require()
-
(2)命名空间
- i.定义和使用
- ii.拆分为多个文件
- (3)别名
-
(4)模块解析
- i.相对和非相对模块导入
-
ii.模块解析策略
- 1.Classic模块解析策略]
- 2.Node模块解析策略
-
iii.模块解析配置项
- 1.baseUrl
- 2.paths
- 3.rootDirs
- 4.traceResolution
- 5.noResolve
16.声明合并
- (1)补充知识
- (2)合并接口
- (3)合并命名空间
-
(4)不同类型合并
- i.命名空间和函数
- ii.命名空间和枚举
17.装饰器
-
(a)基础
- i.装饰器定义
- ii.装饰器工厂
- iii.装饰器组合
- iv.装饰器求值
- (b)类装饰器
- (c)方法装饰器
- (d)访问器装饰器
- (e)属性装饰器
- (f)参数装饰器
18.Mixins
19.其他重要更新
- (1)async异步函数以及Promise
- (2)tsconfig.json支持注释
- (3)动态导入表达式
- (4)弱类型探测
- (5)对 ... 操作符的更新
20.声明文件
-
(1)识别已有JS库的类型
- i.全局库
- ii.模块化库
- iii.UMD库
-
(2)处理库声明文件
- i.模块插件或UMD插件
- ii全局插件
- iii.修改全局的模块
- iv.使用依赖
- v.快捷外部模块声明
21.tsconfig.json配置详解
二、实践
22.封装并发布一个库
23.为第三方库写声明文件
24.TS+NodeJS+Express搭建后端服务
- (1)搭建项目基础
- (2)使用jade模板渲染页面
- (3)使用mysql数据库
- (4)实现注册/登录
- (5)实现文件上传
25.TS+Vue开发一个Todo应用
- (1)使用Vue-Cli3搭建项目
- (2)实现逻辑
- (3)优化样式
26.使用TS封装并发布一个Vue组件
原文配套视频资源获取链接:点击获取
原文配套源码资源获取链接:点击获取
来源:oschina
链接:https://my.oschina.net/u/4409855/blog/3617345