重学 TypeScript
周爱民
二十年资深架构师、前端绿皮书作者
1177 人已学习
新⼈⾸单¥68
课程目录
已完结/共 66 讲
直播课 (1讲)
重学 TypeScript
登录|注册
留言
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 结束语|为何TypeScript要对我们如此刻薄?
00:00 / 00:00
高清
  • 高清
1.0x
  • 3.0x
  • 2.5x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
开篇词|TypeScript 高手修炼指南
课程导学|如何高效学习这门课?
01 | 我们为什么要用TypeScript?
02|怎样标注类型?
03|TS与JS相关的那些类型
04|联合和交叉
05|TypeScript类型系统全景
06|接口类型的联合与交叉
07|类的声明与使用
08|类与接口的相互操作
09|函数签名与传统的类(构造器)
10|索引签名与列表(数组和元组)
11|TypeScript中的同名处理策略
12|枚举类型
13|类型守护与类型收窄
14|在JS与TS之间互通访问的技术
15|在TypeScript中的“语句”与“名字”
16|表达式类型及其基本性质
17|作为表达式类型的联合与交叉
18|元组中的...和索引存取表达式(用Key)
19|keyof的特殊性(取Key)
20|映射类型(映射key)
21|模板字面量类型
22|条件类型概要
23|赋值兼容性的再说明
24|将条件类型用作操作数(X、Y)
25|在条件中使用其它类型(L、R)
26|分布式条件类型的应用
27|理解推断(infer)
28|理解约束(constraint)
29|泛型基本概念和泛型工具
30|泛型声明(一):一般类型的泛型声明
31|泛型声明 (二):函数与类
32|泛型中的推断、约束和缺省
33|泛型工具实践(一):推断-上篇
33|泛型工具实践(一):推断-下篇
34|泛型工具实践(二):转换
35|泛型工具实践(三):列举
36|在VSCode中管理TypeScript
37|在VSCode环境下的TypeScript开发过程全解(上)
37|在VSCode环境下的TypeScript开发过程全解(下)
38|在VSCode中使用JSDoc/TSDoc
39|从传统到智能:抽取类声明的接口
40|让AI参与VSCode与TypeScript的开发全程
41|TypeScript扩展了哪些应用特性
42|管理与组织TypeScript文件与工具套件
43|装饰器的用法
44|为TypeScript代码写测试用例
45|配置基础概念之模块:解析、目标和映射
46|配置选项详解(一):Node.js集成
47|配置选项详解(二):浏览器输出
48|配置选项详解(三):第三方工具集成
49|配置选项详解(四):其它编译选项与环境
50|生成器、迭代器与集合类型的一般应用
51|this类型的深度讲解
52|Promise、异步以及链式调用中的特殊处理
53|不是类型的类型:模块
54|跨模块扩展技术
55|声明文件与全局模块的写法(Globals.d.ts)
56|复杂参数的写法
57|泛型表达式中的上下文与递归
58|如何在回调设计中使用泛型函数
59|泛型声明的子类化问题
直播课预告&问题征集
结课测试|检验一下自己的学习成果吧
结束语|为何TypeScript要对我们如此刻薄?
本节摘要

你好 ,我是周爱民。

各位同学,从开课学习到现在,相信你一定对标题中这句感概深有体会。这句话的原文 “Why is TypeScript being so mean to us?” 来自于 TypeScript v4.3 的 release-note,是出自 TypeScript 开发者“自己的”一声叹息。

对很多同学来说,对这种“刻薄”最深刻的感受就在于——刚刚觉得自己好像懂了,下一秒又陷入不解。这种反复横跳贯穿了整个学习过程,令人感到蹉跎迷惘。

其实,不仅是同学们,就连我在制作课程时也深有同感。比如,“TypeScript 是什么?”这个问题的答案就在我的认识过程中不停地演变。

在开篇词中,曾说 TypeScript 是语言补充、是工具,也是语法扩展。这在表面上看来是没错的,但都是从“如何用它”的角度来给出的答案:你写代码,它就是语言;你做项目,它就是工具。这是最容易为程序员认识和理解的视角,但却非常难于触及 TypeScript 作为语言的本质。

当我们把“如何用”的答案预期从问题中去除掉,真正地问“作为语言,TypeScript 是什么”时,或许才可以触及某些真相。比如,TypeScript 语言规范手册(TypeScript Language Specification)的编写止步于 2016 年的 v1.8 版本,已经快 10 年未更新了。又比如,TypeScript 其实至今也没有明确列出它究竟有哪些运算符,以及这些运算符的优先级如何排列。换而言之,TypeScript 本身,就是一门尚未设计定型的语言。它既未能定型,我们又如何能用“是什么”来定义它?

登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论