为什么我不建议中小企业使用 TypeScript

文章首发公众号:程序员Sunday

Hello,大家好,我是 Sunday。

不知道从什么时候开始,前端开发者中出现了一种 唯 TS 至上论 的思想。

如果你的项目中使用的 是JavaScript不是TypeScript,那么就会被打上 很low 的标签。同时也会被立刻质疑:"你为什么没有使用 TS?"

我为什么一定要使用 TypeScript 呢?

TypeScript 真的有那么的完美,值得我们在任何的场景下都优先使用吗? 恐怕不是的

任何的一门技术都是一把双刃剑,它在带来一定优势的同时,必然也会带来一定的不便性。

所以,咱们今天就来聊一聊:"为什么我不建议中小企业使用 TypeScript!"

01:不要让 TS 沦为 个人KPI

有很多中小企业的 "技术Leader",本身并没有对 TS 进行过深入的了解。只不过是因为老板的一句:"我听说人家现在都在用 TS 啦?" 而强行在团队中推行 TS 。完全不考虑团队目前的技术方向以及团队的加班时长,这是 不可取的

所以 不要让 TS 沦为 个人KPI

当你想要在团队中推行 TS 时,你应该首先评估团队中是否有人使用过 TS,研究下大家学习 TS 所需要花费的时间。如果团队中都不熟悉 TS ,并且你也没有令人信服的理由,就不要强制团队使用 TS 啦。

02:大多数的中小企业很难适应它

说真的,"你(中小企业)花了多少钱招人,你自己心里没点 B 数吗?" 怎么着?还真打算拿着买"粉条"的钱去买"鱼翅"不成?

面试的时候,想尽办法的压薪资。工作的时候,又期望大家为你发挥出远超TA当前薪资的能力,好处都让你占了呗?

所以,别那么天真了!你的开发人员现阶段真的很难适应 TS。

如果,你真的想要在团队中推行 TS,并且希望它可以为你带来好的结果。

那么 请先培训你的团队!

拿出一定的时间和金钱,来提升你团队的技术能力和技术深度。为他们提供学习 TS 所需要的时间和课程,询问团队的意见,正确的评估你们团队的技能组合。否则你的 自私 决定,只会损害你们团队的利益,最终也会损害到你自己的利益。

03:容易出现 "伪 TS"

所有以 .ts 结尾的文件,都是使用了 TypeScript 的。

由此,项目中就有可能会出现大量的 "伪 TS"。也就是:"以 .ts 结尾的文件,但是内容都是 js。"

这样的项目,除了可以让你们老板拿出去"吹牛逼"之外,对技术个人是毫无意义的。

当然,让老板可以拿出去 "吹牛逼" 对很多 "所谓的 Leader" 而言,就是TA们价值的体现

04:更容易出现屎山

其实 "伪 TS" 还好,因为它毕竟 不需要 我们花费更多的 时间和头发 来了解它的心路历程。

而比 "伪 TS" 更可怕的是:屎山一样的 TS 代码。

相信我,一旦 TS 屎山起来,那个味道要比 JS 重的多!

不知道大家有没有接手过一些 "所谓的 TS 项目"。我有幸在多个 训练营的同学 那里见到过很多次。

过度的类型声明、过度的类型封装,以及那些明明被定义但是 "好像" 从来都没有使用过的属性们。偏偏你还不敢动它们。就问你晕不晕。

将来当你想要去定义一个属性时,发现好像已经有了一个类似的,但是你又不确定的时候怎么办呢?最安心的办法就是 "再创建一个"。

所以,我曾经有幸在一个接口中见到了这样的代码(以下为伪代码):

ts 复制代码
interface User {
  name: string;
  name2: string;
  username: string;
  username2: any;
}

就问你刺激不刺激。

通常情况下,当我们遇到这样的代码时,根据 "尽量遵守前人代码习惯" 的规范下,很快这里就可能会出现 name3、name4 以及 name-next...

总结

任何的一门技术都是一把双刃剑,它在带来一定优势的同时,必然也会带来一定的不便性。

所以,我们真的没有必要去跟风追逐所谓的强类型。适合自己团队的,才是最好的!

相关推荐
漫天转悠36 分钟前
Uniapp在Vue环境中引入iconfont图标库(详细教程)
前端·vue.js·uniapp
二狗mao41 分钟前
Uniapp的学习
前端·vue.js·uni-app
334554323 小时前
element表格双击修改时间
开发语言·前端·javascript
想退休的搬砖人3 小时前
axios请求中的data和params的区别
前端
前端李易安3 小时前
如何封装一个axios,封装axios有哪些好处
前端·vue.js·axios
sky.fly3 小时前
HTML5+css3(伪类,动态伪类,结构伪类,否定伪类,UI伪类,语言伪类,link,hover,active,visited,focus)
开发语言·前端·css3·html5
沈询-阿里3 小时前
spring ai 入门 之 结构化输出 - 把大模型llm返回的内容转换成java bean
前端·javascript·easyui
ormcc5 小时前
layui tree customSelet选中的内容重写,查找父级
前端·javascript·layui·tree·customselect
野槐6 小时前
前端Nginx的安装与应用
前端
高申航6 小时前
前端与后端长连接 方法
前端