新上课程推荐: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)优化样式