为什么我不建议中小企业使用 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...

总结

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

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

相关推荐
定栓1 小时前
Webpack迁到Vite第一节:模块系统迁移:require → import
运维·前端·webpack
小熊在忙fpga1 小时前
N32G430芯片的flash表示
前端·javascript·html
Data analyse4561 小时前
App埋点版本兼容的字段迁移校验
大数据·运维·服务器·前端·数据库·数据分析
NC 王炸1 小时前
AI 做的便签,换个浏览器就没了?加一个导出按钮,把数据带走
javascript·ai编程·数据备份·localstorage·txt导出
todoitbo1 小时前
本来只想给内网开个口子,Natapp 却多给了一道防护
前端·javascript·vue.js·内网穿透·网络防护·natapp
会灭火的程序员2 小时前
SuperMap AgentX Server智能体接入WEB应用技术文档
前端·supermap·agentx·agentx server
CRMEB2 小时前
商品 SKU 设计,从简单规格到多规格踩过什么
java·前端·数据库·开源
Chloe.Zz2 小时前
一篇入门Agent
开发语言·前端·javascript
java1234_小锋2 小时前
【技术专题】HTML5 网页技术 - HTML5 表格标签
前端·html·html5
silvamux_2 小时前
4款新模型商务邮件翻译横评:0.98到0.46
android·java·javascript