有朋友跟我说最近面试前端候选人,问到关于 JavaScript 的一些少见误区问题,候选人很多都没回答上来,他很诧异,一个从国际大厂出来的面试者,竟然对 JavaScript 的一些误区问题都不了解。
他说候选人给出的原因是:平时使用 TypeScript 比较多,所以不需要关注这些。”他的描述让我对 TypeScript 产生了好奇:TypeScript 真的能让我们避免掉 JavaScript 大部分的误区问题?带着这样的好奇,我开始在业务应用中尝试使用 TypeScript。通过使用静态类型约束 React 组件 Props 和 State,我发现它与使用 JavaScript 相比,不仅支持在任何地方直观地获取组件的接口定义,还能对属性、状态中的值是否为空进行自动检测并给出提示(容错处理),甚至还支持对 React JSX 元素接收的各种属性、方法的检测和提示。用了一段时间的 Typescript 之后,深感中大型项目中 Typescript 的必要性,它能够提前在编译期避免许多 bug,如很恶心的拼写问题。相比竞争对手 Facebook 的 Flow 而言,TypeScript 更具备类型编程的优势,而且还有 Microsoft、Google 这两家国际大厂做背书。另外,越来越多的主流框架(例如 React、Vue 3、Angular、Deno、Nest.js 等)要么选用 TypeScript 编写源码,要么为 TypeScript 提供了完美的支持。国内各大互联网公司和中小型团队都开始尝试使用 TypeScript 开发项目,且越来越多的人正在学习和使用它。
与其他语言不同,TypeScript 和 JavaScript 的语法并没有明显的区别,意味着你无需学习很多知识就可以开始无缝编写 TypeScript 代码。也就是说,你可以在任何设备、浏览器或操作系统上运行 TypeScript,它全平台兼容。看明白知识点很容易,而难点在于融会贯通。除了关注工程实践,还应该关注核心知识点的深入理解和吸收,避免从理论到实践无从着手的无力感,只有吃透其中的原理,才能真正打造属于自己的强有力武器。最近我看到拉勾教育推出了一个专栏「TypeScript 入门实战笔记」,我看了看内容设置很靠谱,讲得都是 TypeScript 非常核心的原理及应用,里面的很多方案都可以复用在实际工作场景中。现在上新期刚好只卖 1 元,建议前端都要囤一份,每一讲都会对你现在的开发工作有帮助。
讲师叫乾元,前去哪儿资深前端工程师,曾就职于去哪儿、搜狗等大厂,现就职于某新兴一线大厂。2018 年着手推动了 TypeScript 在上百个业务应用里全面实践,构建了 TypeScript + React、Redux、NestJS 的全栈技术生态,积累了丰富的 TypeScript 架构开发经验。
带你了解 TypeScript Config 内主要配置的作用,从而可以按需定制类型检测、构建转译的行为;
讲解 TypeScript 基本类型的应用,让你可以熟练地约定数据、接口;
TypeScript 进阶应用:泛型、类型断言等,从而完全掌握类型编程,并善用组合衍生高阶类型满足实际业务需求;
TypeScript 开发、调试的工具和技巧:错误处理等,从而可以在业务开发中得心应手地应用 TypeScript。
这个专栏从环境搭建开始,由浅入深讲解了三个模块的内容,帮助你快速掌握 TypeScript 技术栈,学会构建高可读性、高稳定性前端应用。这个模块将介绍 TypeScript 环境搭建,并结合浅显易懂的示例与应用场景讲解 TypeScript 基础类型。这部分内容是掌握 TypeScript 编程的一块敲门砖,学完之后,你将对 TypeScript 的核心知识和概念有个整体印象。这个模块主要讲解类型守卫、类型兼容、工具类型等概念,及其在实际业务中的作用和使用技巧。学完之后,能加深你对进阶知识和工具的理解,并教你掌握造轮子(打造自己的工具类型)进行类型编程的能力。这个模块将结合业务实战系统地讲解 TypeScript Config 配置、TypeScript 常见错误分析定位、浏览器等知识,以及 JavaScript 项目改造实践。还会穿插讲师历经数百个应用开发总结出来的 TypeScript 开发最佳实践经验,助你在业务开发中更好地应用 TypeScript。