什么情况下,你应该使用TypeScript?(下)
极客时间编辑部
讲述:丁婵大小:7.97M时长:05:48
你好,欢迎收听极客视点。
此前,公众号“前端之巅”编译了开发者哈利勒·斯坦姆勒(Khalil Stemmler)的一篇文章,斯坦姆勒探讨了在什么情况下绝对应该使用 TypeScript 这种类型严格的编程语言。斯坦姆勒认为,在性能系统问题、嵌入式系统问题和复杂领域问题这三种软硬件问题中,只有复杂领域问题是一定要使用 TypeScript 的领域。此外,还有一些因素会让你知道什么时候应该在 JavaScript 项目中使用 TypeScript,具体如下。
1. 代码大小
代码大小通常与复杂领域问题有关,在复杂领域问题中,一个大型代码库对应着一个复杂领域,但并非总是如此。
当项目的代码量达到一定大小时,开发人员就很难跟踪已有的所有内容,并且经常会重复实现一些已经存在的代码部分。当开发新手开始在一个体积已经很大的代码库上编程时,这个问题就会特别明显。
VS Code 的自动完成和 Intellisense 功能可以帮助开发人员在大型项目中导航。它和 TypeScript 搭配使用非常顺手,但是在 JavaScript 上却会受到一定的限制。
如果一个项目会一直保持简单且小巧的设计,那就不推荐使用 TypeScript 了。
2. 生产软件与宠物项目
生产软件指的是你很在乎的那些代码,或者是一旦跑不起来就会给你添麻烦的那些代码,你的测试也是针对这些代码编写的。常见的一条经验法则是说,如果你在乎某些代码,就需要对它们进行单元测试。
宠物项目正如其字面意义所言,你想做什么就可以做什么,不需要什么专业承诺,用不着坚持任何工业标准。
但如果有一天,你的宠物项目会变成你的主要项目,进而转变为生产软件,这时候你就会头疼了;就因为你的宠物项目没有测试或类型,所以错误百出……
3. 缺乏单元测试
并非所有事物都是可以测试的,如果你没有单元测试,那么你能选择的最佳方案就是使用 TypeScript 进行编译时检查。接下来,如果你使用的是 React,那么下一步最好用 Prop 类型进行运行时检查。
但是,编译时检查不能取代单元测试。单元测试的优点在于它可以用任何语言编写,因此这里的 TypeScript 参数是无关紧要的。重点在于我们要编写测试,并且对代码能有信心。
4. 初创企业
在初创时期,你选择哪种语言并没那么重要,你要做的最重要的事情就是验证你的产品。
选择一种你了解的语言或工具会帮助你在将来扩展业务,但如果你完全不熟悉某种工具,还需要花时间学习它,那么它可能就不是你在启动阶段的最佳选择。
根据你的项目所处的发展阶段,你最重要的任务就是提高工作效率。对于语言,有没有类型都可以。当你构建出了人们真正想要的东西之后,随时可以将其重构为更好的设计。
5. 团队工作
当团队足够大时(因为问题足够大),最好使用一种有格调的(opinionated)框架,比如说前端用 Angular,后端用 TypeScript。
之所以使用这样的框架,是因为你限制了人们完成某件事时的可行途径。在 Angular 中,添加 Route Guard、使用依赖注入、连接路由、延迟加载和响应表单这些工作都只有一种主要方法。
这里的一大好处是 API 都被指定好了。
使用 TypeScript 时,我们可以节省大量时间并提高沟通效率。另外,如果你在一个大型团队中工作,并且需要尽量减少他人滥用你的代码的潜在途径,那么 TypeScript 就是帮助你解决这类问题的好帮手。
如果你在较小的团队中,更容易管理编码风格,更容易沟通交流。小团队可以使用 linting 工具,经常讨论完成任务所用的方式,再结合预提交的 hooks,这样就算没有 TypeScript 也可以做得非常成功。
6. 架构:React 和 Angular
很多开发人员之所以喜欢 React,大部分原因在于它能让开发人员凭借自己的意愿以优雅 / 巧妙的方式编写代码。
的确,React 能让你成为更优秀的 JavaScript 开发人员,因为它迫使你以不同的方式处理问题;它要求你必须了解 JavaScript 中 this 绑定的工作机制,并让你能用很多小组件组合成大型组件。
React 还可以让你拥有自己的风格。你可以用很多种方式来完成指定任务,比如在以下情况,编写原生的 React.js 应用:
代码库很小
写代码的只有你
在以下情况,你可以使用 TypeScript 编译:
写代码的超过 3 个人
代码库预计会很大
出于同样的原因,你也可以选择使用 Angular。
以上就是斯坦姆勒对 TypeScript 使用场景的看法,欢迎你在评论区留下你的观点,一起探讨。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论