乐趣区

新上课程推荐:TypeScript完全解读(总26课时)

讲师简介:
iview 核心开发者,iview-admin 作者,百万级虚拟渲染表格组件 vue-bigdata-table 作者。目前就职于知名互联网公司,对 Vue 技术栈项目开发有深刻见解,关注团队协作项目开发最佳实践。

课程链接:https://segmentfault.com/ls/1…

前言:
      TypeScript 在 2018 年势头迅猛,三大主流前端框架中,Angular 和 React 开始就是使用 TS 编写的源码,而 Vue3.0 将使用 TS 重写,重写后的 Vue3.0 将更好的支持 TS,届时三大框架都可以很好的支持开发者使用 TS 开发。而现在几乎所有第三方 JS 库都有开源社区为之书写 TS 声明文件,所以即便是旧的项目也能够逐步过渡到 TS 开发。越来越多的库开始使用 TS 重写,越来越多的开源工具诸如 VSCode 等源码都用 TS 书写。2019 年 TypeScript 将会更加普及,国内各大互联网公司,和中小型团队都开始尝试使用 TS 开发项目,TS 也将会成为面试官喜欢提及的内容,能够熟练掌握 TS,并使用 TS 开发过项目,将会为你的面试加分。
      本套课程包含两大部分,第一部分是基础部分,也是重要部分,参考 TS 官方文档结构,针对内容之间的关联性和前后顺序进行合理调整。所讲内容基本覆盖 TS 所包含的所有内容,但是不拘泥于文档照搬,对一些不好理解,而文档中一句带过的内容,补充具体的示例,帮助大家理解;对于一些滞后的文档内容和一些错误示例进行修正,并将后面更新的新特性穿插到对应章节;在讲解基础知识的同时,穿插一些实际开发中的经验,帮助大家理解学习。第二部分实践部分,通过 5 种常见项目类型进行实际操练,将基础知识融入到实际场景中进行运用,帮助大家理解基础知识的实际使用场景,对学习和开发有重要帮助。

课程重要说明:
      本课程持续更新,基础部分每周一更新 3 节,周二至周五每天更新 1 节,每日更新时间以视频通过审核时间为准;基础部分 21 课时更新完一周后开始更新实战部分课程,每周更新 2 节。

课程答疑群:
      购买课程后可以进入本课程答疑群,学习中有任何问题和建议可在群里交流,点击!! 这里!! 扫码进群,进群有如下福利:

学习中的任何问题,都可以在群里得到答案
本课程录制时 TS 最新版本为 3.3,TS 的后续更新,答疑群内都会及时讲解,以文档或视频方式讲解最新 TS 的更新内容,一套课程,终身学习
后续购课永享 8 折优惠,群内永久分享 Lison 其他课程优惠购课地址
更多其他福利

课程面向群体:

对 TS 零基础,有基本 JS 基础的开发者
对 TS 有简单了解没有深入详细学习的开发者
想学习 TS 并投入到实际开发中的入门开发者
有 JS 前后端开发经验,并想结合 TS 进行开发的开发者

课程大纲:
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 组件

退出移动版