网站系统建设方案,建筑网片钢筋网片,怎么配置wordpress,wordpress如何重置后台密码TypeScript 缘起
在过去的十年里#xff0c;我一直从事前端开发工作#xff0c;亲自见证了 Atwood 定律#xff0c;那就是#xff1a;“任何能用 JavaScript 实现的应用#xff0c;最终都会用 JavaScript 实现。”如今#xff0c;从移动终端到后端服务#xff0c;从 Io…TypeScript 缘起
在过去的十年里我一直从事前端开发工作亲自见证了 Atwood 定律那就是“任何能用 JavaScript 实现的应用最终都会用 JavaScript 实现。”如今从移动终端到后端服务从 IoT 到神经网络它几乎无处不在。如此广阔的应用领域自然对语言的安全性、健壮性和可维护性有更高的要求。
尽管 ECMAScript 标准在近几年有了长足的进步但在类型检查方面依然无所建树。你是否经常遇到这样的场景
场景一你调用一个别人写的函数但是很不幸这个家伙没有留下任何注释为了搞清楚参数类型你只能硬着头皮去看里面的逻辑。 场景二为了保证代码的健壮性你很有责任心对一个函数的输入参数进行各种假设最终给老板盛上了一碗香喷喷的意大利面。 场景三领导看好你让你维护一个重要的底层类库你殚精竭虑优化了一个参数类型但不知道有多少处引用在提交代码前是否感到脊背发凉 场景四明明定义好了接口可一联调就报错了“TypeError: Cannot read property ‘length’ of undefined”于是你怒气冲冲地去找后端理论“嘿哥们儿这个字段是数组这个字段是数组这个字段是数组” 以上情况归根结底是因为 JavaScript 是一门动态弱类型语言对变量的类型非常宽容而且不会在这些变量和它们的调用者间建立结构化的契约。如果你长期在没有类型约束的环境下开发就会造成“类型思维”的缺失养成不良的编程习惯这也是做前端开发的短板之一值得我们警醒。
令人庆幸的是开源社区一直在努力解决这个问题。早在 2014 年 Facebook 就推出了 Flow微软在同年也发布了 TypeScript 的 1.0 版本。它们都致力于为 JavaScript 提供静态类型检查。五年过后显然 TypeScript 发展得更好一些多个团队比如 Angular 和 Vue开始全面使用 TypeScript 重构代码甚至连 Facebook 自家的产品比如 Jest 和 Yarn都在从 Flow 向 TypeScript 迁移。可以说在 ES 标准推出静态类型检查前TypeScript 是当下解决此问题的最佳方案。
什么是 TypeScript
那么什么是 TypeScript根据官方的定义它是拥有类型系统的 JavaScript 的超集可以编译成纯 JavaScript。这里你要注意三个要点 第一类型检查TypeScript 会在编译代码时进行严格的静态类型检查这意味着你可以在编码阶段发现可能存在的隐患而不必把它们带到线上。 第二语言扩展TypeScript 会包括来自 ECMAScript 6 和未来提案中的特性比如异步操作和装饰器也会从其他语言借鉴某些特性比如接口和抽象类。 第三工具属性TypeScript 能够编译成标准的 JavaScript可以在任何浏览器、操作系统上运行无需任何运行时的额外开销。从这个角度上讲TypeScript 更像是一个工具而不是一门独立的语言。
为什么要使用 TypeScript
使用 TypeScript 还能带来其他好处。比如Visual Studio Code具有强大的自动补全、导航和重构功能这使得接口定义可以直接代替文档同时也提高了开发效率降低了维护成本。更重要的是TypeScript 可以帮助团队重塑“类型思维”接口提供方将被迫去思考 API 的边界他们将从代码的编写者蜕变为代码的设计者。
如果说 JavaScript 是一匹野马那么 TypeScript 就是束缚这匹野马的缰绳。作为骑士的你自然可以张开双臂放飞自我但如果不是技艺超群恐怕会摔得很惨。然而如果抓住了缰绳你即可闲庭信步亦可策马扬鞭。这就是 TypeScript 的价值它会让你在前端开发之路上走得更稳走得更远。
内容设计思路
这门课程分为三大模块 模块一基础篇我会为你详细解读 TypeScript 的每个特性它能解决什么问题与 JavaScript 的区别在哪里一步一步带你重塑“类型思维”。 模块二工程篇学习了语法仍然做不好项目吗这是因为 TypeScript 理论和实际开发之间仍然存在不小的鸿沟让很多初学者望而生畏。别担心在这一部分我将为你趟平它。 模块三实战篇我将手把手带你开发四个典型的应用案例加深你对相关概念的理解。
适合人群
本课程适于具备一定 ECMAScript 6 基础的终端开发者以及对 TypeScript 感兴趣的同学你将全面了解 TypeScript 的核心知识与应用场景。
课程目标
学完这门课程后我希望能在你的脑中播下“类型思维”的种子。因为思维方式决定了编程习惯编程习惯奠定了工程质量工程质量划定了能力边界。面对越来越复杂的前端应用TypeScript 所提供的思维方法能够让你在未来的开发中长期受益。因此这门课程的重点不仅在于讲解 TypeScript 的知识点和实战应用更在于训练你的思维。
如果你曾饱受动态类型带来的困扰并愿意为此做出一些改变那么现在就加入这门 TypeScript 实战课程吧。