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

总结

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

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

相关推荐
竹林81810 分钟前
在Web3前端用Node.js子进程批量校验钱包,我踩了这些性能与安全的坑
javascript·node.js
农夫山泉不太甜16 分钟前
Tauri v2 实战代码示例
前端
yuhaiqiang33 分钟前
被 AI 忽悠后,开始怀念搜索引擎了?
前端·后端·面试
红色石头本尊1 小时前
1-umi-前端工程化搭建
前端
真夜1 小时前
关于对echart盒子设置百分比读取的宽高没有撑开盒子解决方案
前端
楠木6851 小时前
RAG 资料库 Demo 完整开发流程
前端·ai编程
肠胃炎1 小时前
挂载方式部署项目
服务器·前端·nginx
像我这样帅的人丶你还1 小时前
使用 Next.js + Prisma + MySQL 开发全栈项目
前端
FPGA小迷弟1 小时前
FPGA 时序约束基础:从时钟定义到输入输出延迟的完整设置
前端·学习·fpga开发·verilog·fpga
Kel1 小时前
深入剖析 openai-node 源码:一个工业级 TypeScript SDK 的架构之美
javascript·人工智能·架构