请选择 进入手机版 | 继续访问电脑版

TypeScript完全解读(26课时)

19
回复
251
查看
[复制链接]
  • TA的每日心情
    奋斗
    2020-8-28 14:55
  • 签到天数: 279 天

    [LV.8]以坛为家I

    4586

    主题

    5556

    帖子

    74万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    748714
    发表于 2020-5-6 17:15:38 | 显示全部楼层 |阅读模式
    编程专区
    编程语言: 网页前端 
    课程类型: 其他 
    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组件


    游客,如果您要查看本帖隐藏内容请回复

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-5-6 17:44
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    3

    帖子

    14

    积分

    新手上路

    Rank: 1

    积分
    14
    发表于 2020-5-6 17:49:48 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2020-8-20 00:09
  • 签到天数: 37 天

    [LV.5]常住居民I

    3

    主题

    87

    帖子

    3148

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    3148
    发表于 2020-5-6 18:35:32 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 62 天

    [LV.6]常住居民II

    4

    主题

    121

    帖子

    3771

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    3771
    发表于 2020-5-6 18:42:15 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-9-4 10:01
  • 签到天数: 153 天

    [LV.7]常住居民III

    2

    主题

    252

    帖子

    6404

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    6404
    发表于 2020-5-8 14:06:52 | 显示全部楼层
    88888888888888888888888
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-9-8 21:17
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    1

    主题

    33

    帖子

    2404

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    2404
    发表于 2020-5-8 21:33:29 | 显示全部楼层
    123啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    5 天前
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    2

    主题

    40

    帖子

    2481

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    2481
    发表于 2020-5-9 16:24:59 | 显示全部楼层
    感谢 支持 不错 无奈 一般 生气 回帖 路过 顶帖
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2020-5-29 19:19
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    3

    主题

    74

    帖子

    2626

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    2626
    发表于 2020-5-9 19:01:56 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    3 天前
  • 签到天数: 170 天

    [LV.7]常住居民III

    2

    主题

    381

    帖子

    6967

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    6967
    发表于 2020-5-9 20:13:43 | 显示全部楼层
    dsfa dfas df asdfas fdasd dfas dfasd fsd
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-6-13 18:41
  • 签到天数: 36 天

    [LV.5]常住居民I

    1

    主题

    119

    帖子

    2017

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    2017
    发表于 2020-5-9 21:27:26 | 显示全部楼层
    这个帖一般般,还可以哦。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    学习课程!一站搞定!
    学途无忧VIP会员群

    973849140

    周一至周日9:00-23:00

    反馈建议

    169371168@qq.com 在线QQ咨询

    扫描二维码关注我们

    学途无忧!为学习谋坦途,为会员谋福利!|网站地图