极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:48
登录|注册

什么情况下,你应该使用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
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
1. 代码大小
2. 生产软件与宠物项目
3. 缺乏单元测试
4. 初创企业
5. 团队工作
6. 架构:React 和 Angular
显示
设置
留言
收藏
23
沉浸
阅读
分享
手机端
快捷键
回顶部