TypeScript很受大众喜爱。因为它“解决”了JS的许多问题,是JS的“超集”。它不仅能轻松找出代码错误,还能使其易于阅读。对,没错,使用TypeScript的理由太多了。反其道而行之,今天小编就要说不使用TypeScript的理由。
1、经常会遇到要引入的东西不支持,配置很麻烦。东西本身项目周期不长,甚至可能会改来改去,用TS耗时。
2、项目本身是TS并不影响我在里面写一个生命周期短的、用一段时间就废掉的/需要根据业务灵活调整逻辑的JS组件。定义不定义类型根本没区别,定义类型=浪费时间。
3、虽然开源,但很局限:使用TypeScript的许多原因表明它是开源的。没错,TS编译器是在MIT许可下发布的。但它仍由微软(Microsoft)控制,微软是一家垄断性的大公司,其开源技术的进步不过是一种营销手段。不要把开源和民主混为一谈:微软仍然可以用TS做任何你想做的事情,你只是来看看。另一方面,JS由一个国际委员会管理,未经共同体批准,任何事情都不会改变。
4、不是超集,而是子集:TypeScript是编译成JavaScript的语言,根据定义它不能是超集。它限制了使用JavaScript所能做的事情,并且在提供虚假的内心平静的同时掩盖了JavaScript强大的一面。如果你真的想成为一个伟大的开发者,不要沉溺于一个安慰的谎言,试着去理解JavaScript的真正力量和它的灵活性。
5、语法不稳定。ts曾经多次出现语法方面与ES标准打架的情况,导致旧的学习成本沉没。eclint有过多次重大重构仅仅是为了切换ts专用语法为es兼容语法。
而且有时你会突然怀念起写java的感觉,“.java—.class不就是.ts—.js嘛”,“所有的库都是‘TS’写的,ctrl+左键进去查看的不是声明文件是源码,真好啊”,’现在为.js写声明文件,和读.class然后人脑反编译.java有什么区别!”,
然后你就会去看看java怀旧,发现java现在写着还挺爽的了啊,什么var、Flux什么的,也能单线程异步非阻塞了,然后你就去写java了。
总结一下,个人觉得如果你公司的项目体量不小,且有明确的规划,人员配备和工期都很充足,那么TypeScript是一个好的选择,提升技术何乐而不为?其次,javaScript,TypeScript是共存的,完全可以使用TypeScript来写方法和类,都是没问题的,后续如果有需求在渐进式过渡到Component。