学途无忧

标题: TypeScript完全解读(26课时) [打印本页]

作者: admin    时间: 2020-5-6 17:15
标题: TypeScript完全解读(26课时)
TypeScript完全解读(26课时)
〖课程介绍〗:
        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种常见项目类型进行实际操练,将基础知识融入到实际场景中进行运用,帮助大家理解基础知识的实际使用场景,对学习和开发有重要帮助。8 K! z' k& o2 C; H* W% u! W. O
                  
〖课程目录〗:* ^% T, D, w1 ^$ i3 b
        1.搭建开发环境
        2.基础类型
        (1)布尔值7 X2 [- @3 Y/ e1 b
        (2)数值
        (3)字符串1 V' c: `# s* M0 ?# a
        (4)数组
        (5)元组
        (6)枚举
        (7)any
        (8)void/ j# W% v! u- s- N
        (9)null和undefined! v: u; w5 h! O- {
        (10)never4 Q) q3 J# g. X& m; c; {3 u6 V
        (11)object$ x' s/ ^5 A; l, B" E" _
        (12)类型断言
        3.【赠课】ES6精讲 - Symbol* ]) x7 n$ I9 f1 K% ~; W
        (1)基础
        (2)作为属性名9 {1 n9 N5 C- W3 }$ z; k  S9 u6 ?1 Z
        (3)属性名的遍历9 a/ ~% e2 q( l, p
        (4)Symbol.for和Symbol.keyFor
        4.接口2 l( b, W; `- G- t/ H5 k
        (1)基本用法4 v& L* X* R% ]' T8 y1 m
        (2)可选属性% L( L& u& F4 U; N8 K% O
        (3)多余属性检查
        (4)绕开多余属性检查2 c; y* u$ q; d! n2 q  @
        (5)只读属性+ {& e5 z2 p; {2 T# o: |3 N1 G. ?
        (6)函数类型
        (7)索引类型
        (8)继承接口4 h, \& p, ?  v, P/ o# J' Q" R
        (9)混合类型接口
        5.函数
        (1)函数类型
) q4 z  W& C6 F. O: A. b' }
        i.为函数定义类型
        ii.完整的函数类型, D& L& m6 U7 Y
        iii.使用接口定义函数类型4 j1 N  F7 r8 r& J
        iv.使用类型别名
        (2)参数8 x  y+ {. S8 @: R# Z1 F

        i.可选参数
        ii.默认参数7 \4 r  a0 f3 q1 Z; S. F. C6 k. z, T
        iii.剩余参数1 f/ }7 \  [# Y7 V
        (3)重载9 n* p6 I% n( w9 b8 r' a& P0 t: ?
        6.泛型) M6 ?% @7 U& ]0 I( o* L7 a. N0 M
        (1)基本用法6 ^' ]) l8 W" N9 G+ Z
        (2)泛型变量
        (3)泛型类型! g) i! p/ ^7 `% j9 p8 _
        (4)泛型约束' S$ N4 L* z3 k9 ^
        (5)在泛型约束中使用类型参数
        7.【赠课】ES6精讲 - 类Class基础
        (1)实现创建实例
        (2)constructor方法
        (3)类的实例
        (4)取值函数和存值函数
        (5)class表达式
        (6)静态方法" |- N8 @$ x. X0 c
        (7)实例属性其他写法
        (8)静态属性
        (9)私有方法
        (10)私有属性& Y1 T9 Q6 ]$ |3 R% V
        (11)new.target属性4 }0 t8 F2 d8 [1 Q% P
        8.【赠课】ES6精讲 - 类Class继承
        (1)ES5中的继承
        (2)ES6中类的继承& X* d1 ^' o8 E' c& k
        (3)Object.getPrototypeOf
        (4)super
' q0 {9 ]; }- _+ C0 x% N
        i.作为函数
        ii.作为对象* j5 ~# _  E1 D
        (5)类的prototype属性和__proto__属性) g! g/ R5 Y  w
        (6)原生构造函数的继承3 ^1 y3 M. @0 e. f5 Z0 h0 k. D
        9.TS中的类
        (1)基础, G% I( x. Z, g6 a! a; N% O
        (2)修饰符* \  m2 V; @' D4 S+ _- J$ @

        i.public
        ii.private
        iii.protected7 }$ S* G" |/ G# C: H! t) I6 \
        (3)readonly修饰符
        (4)参数属性
        (5)静态属性
        (6)可选类属性
        (7)存取器: j" c* ~: `+ M
        (8)抽象类
        (9)实例类型
        (10)对前面跳过知识的补充# J+ q! t0 G! q  y" h- |, o
2 d, E/ B) C$ A' p
        i.类类型接口& @5 h$ F, X/ G) M/ T( l
        ii.接口继承类. |+ @" v6 r) @' T. J
        iii.在泛型中使用类类型) \3 f8 d8 \/ P, v9 Z6 Y$ m; c
        10.枚举, f& Y+ m& V) d5 @8 T" d) f
        (1)数字枚举+ F7 |) C# j2 I
        (2)反向映射
        (3)字符串枚举7 w( p- G3 d5 p
        (4)异构枚举9 l5 @2 N' D5 U, L
        (5)枚举成员类型和联合枚举类型
        (6)运行时的枚举+ G: }- S- U3 j
        (7)const enum5 S' k. |! A* d1 H2 ^- q
        11.类型推论和兼容性
        (1)类型推论
4 P9 Z% \3 Q) A/ \
        i.基础/ D. B8 i: w6 h7 E; ?1 K6 z
        ii.多类型推论
        iii.上下文类型
        (2)类型兼容性2 A0 h2 B' {: z: D: ]$ G

        i.基础
        ii.函数兼容性) n8 v& K5 N( w4 l

        1.函数参数个数4 n8 F  N1 F1 d) x8 P) f, _
        2.函数参数类型# x  x" K2 r0 R% n$ r$ z" h) ]* z* U
        3.函数返回值类型3 B% _: ?& f4 P/ B. ^; D9 k
        4.可选参数和剩余参数* L* g9 j3 \$ J) n! _
        5.函数参数双向协变
        6.函数重载
        iii.枚举兼容性
        iv.类兼容性
        v.泛型兼容性. U) \: l8 K, H2 a7 @1 _" z
        12.高级类型 - 1
        (1)交叉类型1 C6 B+ i% s" M0 _
        (2)联合类型$ k3 Y' a" N) n$ O; k4 y
        (3)unknown
        (4)类型保护$ N% o9 f" x( k$ r( m% ^8 q

        i.自定义类型保护
        ii.typeof类型保护
        iii.instanceof类型保护) @0 h2 e9 M" K# b2 s- E! F! ?
        (5)null和undefined
" j" [/ D; D. B# H
        i.严格模式6 `' ]# l/ t2 y2 I  C7 s. B# [( F
        ii.可选参数和可选属性
        (6)类型保护和类型断言
        (7)类型别名. @* G; n. H6 G+ ?
        (8)字面量类型
# x! J8 g6 N( u3 C. v2 W
        i.字符串字面量类型. A$ Z8 ^1 C1 `# F& Q
        ii.数字字面量类型* b3 h2 L* ]2 u/ w! t4 Y! n. \
        (9)可辨识联合7 B  L+ C1 V7 {3 |) _' C

        i.利用strictNullChecks
        ii.使用never类型
        13.高级类型 - 2
        (1)this类型  u, |; B  u! V
        (2)索引类型

        i.索引类型查询操作符
        ii.索引访问操作符3 r8 g( W- @4 X  L+ {3 m
        (3)映射类型1 Q9 h+ |8 `6 R! y( Z8 ?
! N4 M$ W& Q  c2 S+ x3 x7 ^
        i.基础# |' B) G+ |5 b3 v4 G5 p; }
        ii.由映射类型进行推断2 J, `9 m; j' ~. J; z, x7 Q
        iii.增加或移除特定修饰符7 E" w2 b" |7 r' T# J
        iv.keyof和映射类型在2.9的升级
        v.元组和数组上的映射类型0 v& c- I6 V4 T3 u/ U3 G  D
        (4)条件类型

        i.基础
        ii.分布式条件类型
        iii.条件类型的类型推断& ], R; {# K0 E* s# g
        iv.TS预定义条件类型
        14.【赠课】ES6和Node.js中的模块! x% b& u( s( u# _" e
        (1)ES6的模块  R" N2 ]8 C% ]' D2 [

        i.export; w& z, p& U6 [0 |' i
        ii.import% x' Q" _9 i+ c3 h9 c/ ~2 P
        iii.export default
        iv.import和export的复合写法
        v.import()2 \' g$ R. H3 [! q$ p
        (2)Node.js的模块  V7 t- a& B9 B1 ?( b# [4 S; J1 k
0 n  G" B1 A5 n8 G6 U: q. ]
        i.exports
        ii.module.exports
        15.模块和命名空间7 O6 O  \5 Y4 A( Z- g
        (1)模块( c1 r/ p1 e; I3 m' p' Y! e8 N

        i.export
        ii.import
        iii.export default
        iv.export =和import xx = require()7 y8 }( f" f/ d( ~
        (2)命名空间$ y4 {! _3 t3 ~

        i.定义和使用  `% X( U- S& @+ n: T: N9 Q
        ii.拆分为多个文件
        (3)别名' c; ]9 Q. k% H% P/ O, x4 a
        (4)模块解析

        i.相对和非相对模块导入: R/ e5 [4 V; m- u, i- U5 R
        ii.模块解析策略3 B7 J( H$ c  ^5 v' I6 E( X& e

4 ?4 y2 }, E0 [: E: S) Z
        2.Node模块解析策略  M; G, B7 A/ X9 t! A
        iii.模块解析配置项
; n1 \! l& [5 G: s
        1.baseUrl
        2.paths& F/ D. t1 [  m% b6 Q8 {
        3.rootDirs  \5 O1 h+ O# E! m
        4.traceResolution
        5.noResolve- J& f1 {& O2 T
        16.声明合并
        (1)补充知识/ ?+ x4 q, h* C
        (2)合并接口
        (3)合并命名空间& o' m3 f$ I" L# n
        (4)不同类型合并

        i.命名空间和函数
        ii.命名空间和枚举
        17.装饰器
        (a)基础) I; n. f& I' Q3 l
  w; K* {9 h$ ]9 r! m
        i.装饰器定义3 M5 g4 l: Z. s
        ii.装饰器工厂
        iii.装饰器组合+ l- x7 U6 s, i3 u2 P
        iv.装饰器求值; ~$ W: r5 V) {0 z9 ]& `
        (b)类装饰器, D; V9 N6 q1 I; r# v' [5 D4 t" V
        (c)方法装饰器
        (d)访问器装饰器3 }- }2 I8 a! \( I
        (e)属性装饰器
        (f)参数装饰器
        18.Mixins, ~9 e' @+ D- i  F$ t
        19.其他重要更新
        (1)async异步函数以及Promise
        (2)tsconfig.json支持注释9 R2 q) L5 r# x" f4 O
        (3)动态导入表达式
        (4)弱类型探测: R4 [6 V6 Y; I' [, H2 E
        (5)对 ... 操作符的更新
        20.声明文件) ?4 C$ f' F9 Y3 B# ~" V
        (1)识别已有JS库的类型) ^6 Z' b% p( K. {! r
+ H% r) Y3 \' j* }- y$ _
        i.全局库
        ii.模块化库: M( R+ V; g5 B% U% A
        iii.UMD库
        (2)处理库声明文件

        i.模块插件或UMD插件
        ii全局插件
        iii.修改全局的模块5 p9 x; d# {0 K
        iv.使用依赖
        v.快捷外部模块声明  a' l1 W! L3 H' H; Y) ]
        21.tsconfig.json配置详解
        二、实践, j8 O8 e) C& V+ y
  ]$ l0 C7 g8 h+ K& k, l
        22.封装并发布一个库# {7 K: j% u# y! ~8 O# [2 r
        23.为第三方库写声明文件5 Q+ n4 t+ B# x' @9 s+ R
        24.TS+NodeJS+Express搭建后端服务) j- ?* a! O: I8 D! l2 }
        (1)搭建项目基础, H$ D8 r! [6 _/ U
        (2)使用jade模板渲染页面
        (3)使用mysql数据库: y( E0 C* h8 J9 ]8 y( k
        (4)实现文件上传$ x5 j5 N. w1 o- ?7 s2 D( G
        25.TS+Vue开发一个Todo应用
        (1)使用Vue-Cli3搭建项目
        (2)实现逻辑
        (3)优化样式* i- [8 {/ F8 F) |$ [
        26.使用TS封装并发布一个Vue组件




作者: 嗯!ok    时间: 2020-5-6 17:49
啥也不说了,感谢楼主分享哇!
作者: Samuel无心    时间: 2020-5-6 18:35
啥也不说了,感谢楼主分享哇!
作者: itluooo    时间: 2020-5-6 18:42
啥也不说了,感谢楼主分享哇!
作者: network    时间: 2020-5-8 14:06
88888888888888888888888
作者: clouiels    时间: 2020-5-8 21:33
123啥也不说了,感谢楼主分享哇!
作者: 976012561    时间: 2020-5-9 16:24
感谢 支持 不错 无奈 一般 生气 回帖 路过 顶帖
作者: q20010012001001    时间: 2020-5-9 19:01
啥也不说了,感谢楼主分享哇!
作者: gongzhudewangzi    时间: 2020-5-9 20:13
dsfa dfas df asdfas fdasd dfas dfasd fsd
作者: 291309079    时间: 2020-5-9 21:27
这个帖一般般,还可以哦。
作者: raferxu    时间: 2020-5-9 21:28
TypeScript完全解读(26课时)
作者: trigger    时间: 2020-5-9 23:28
啥也不说了,感谢楼主分享哇!
作者: char32    时间: 2020-5-10 12:58
谢谢楼主!!!
作者: xyf    时间: 2020-5-11 09:02
感谢楼主分享
作者: shijinke1990    时间: 2020-5-11 23:30
啥也不说了,感谢楼主分享哇!
作者: 壞尐囝    时间: 2020-5-24 23:47
adasfasdasdasdasdasd
作者: Nobel    时间: 2020-5-31 16:41
观看视频学习一下
作者: g751634557    时间: 2020-6-11 00:24
啥也不说了,感谢楼主分享哇!
作者: YWJ    时间: 2020-6-11 01:00
啥也不说了,感谢楼主分享哇!
作者: Whisper    时间: 2020-9-18 14:53
确实是难得好帖啊,顶先
作者: zhaoliangshun    时间: 2020-10-11 17:40
RE: TypeScript完全解读(26课时) [修改]
作者: wuyascnu    时间: 2020-10-14 15:04
正需要,支持楼主大人了!
作者: xiongji99    时间: 2020-10-14 17:00
ypeScript完全解读(26课时) [修改]
作者: gelove    时间: 2020-12-15 01:55
啥也不说了,感谢楼主分享哇!
作者: jiangtao1027    时间: 2020-12-17 10:15
正需要,支持楼主大人了!
作者: 32915486@qq.com    时间: 2021-1-18 20:36
确实是难得好帖啊,顶先
作者: MrCvcNkf    时间: 2021-1-23 09:51
222222222222222
作者: yanglaowu    时间: 2021-1-30 11:51
正需要,支持楼主大人了!
作者: CharlieLee    时间: 2021-1-30 14:19
啥也不说了,感谢楼主分享哇!
作者: FfIJjGKb    时间: 2021-1-30 14:31
确实是难得好帖啊,顶先
作者: 前端小蜗牛    时间: 2021-1-30 23:21
啥也不说了,感谢楼主分享哇!
作者: 沐秋烟    时间: 2021-2-18 12:54
啥也不说了,感谢楼主分享哇!
作者: lyseky    时间: 2021-2-18 16:48
确实是难得好帖啊,顶先
作者: chenqichun    时间: 2021-4-28 22:51
666666不错
作者: xiaoxiangcanyu    时间: 2021-5-29 16:13
222222222222
作者: wwwcnradio    时间: 2021-7-20 16:52
fdfdfdf 地方大幅度
作者: 腻歪    时间: 2022-3-30 10:14
确实是难得好帖啊,顶先
作者: chuanchic    时间: 2022-6-7 08:54
学习一下
作者: daijiandong    时间: 2022-12-27 21:22
啥也不说了,感谢楼主分享哇!




欢迎光临 学途无忧 (https://www.xuetu123.com/) Powered by Discuz! X3.2