文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

7个不使用TypeScript的理由,你认同吗?

2024-12-24 19:05

关注

对,没错,使用TypeScript的理由太多了。

反其道而行之,今天小芯就要说7个不使用TypeScript的理由。

1. 它不能解决问题

据说TypeScript可以解决JavaScript的问题,但事实并非如此。动态类型在JavaScript中从来都不是问题,但是许多其他问题,例如NaN===NaN为false、分号为可选或非可选、换行符将对象定义更改为作用域、语法糖代替OOP等,确实是问题。TypeScript并没有解决这些问题,但是引入了另一个标准,进一步分化了JS社区。

即使假设JS中缺少类型是一个问题,TS也不能解决这个问题。你知道什么语言可以解决吗?Java、C、C#等编译语言可以。它们可以在编译和运行时安全地保证强类型。翻译语言就是不能做到这一点。

2. 虽然开源,但很局限

使用TypeScript的许多原因表明它是开源的。没错,TS编译器是在MIT许可下发布的。但它仍由微软(Microsoft)控制,微软是一家垄断性的大公司,其开源技术的进步不过是一种营销手段。不要把开源和民主混为一谈:微软仍然可以用TS做任何你想做的事情,你只是来看看。另一方面,JS由一个国际委员会管理,未经共同体批准,任何事情都不会改变。

[[317740]]

来源:Pexels

3. 危险

所以,如果TypeScript添加类型定义并在编译时进行检查,会有什么风险呢?以及IDE集成将警告你任何类型不匹配?

正因为如此,TypeScript只在编译时检查类型,并且只检查可用的类型。任何网络调用、系统库、特定于平台的API和非类型化的第三方库都无法与TypeScript通信。当你习惯于检查类型,而不必完全理解代码和平台时,就会出现错误和bug。

使用JS,对类型没有任何假设,并且检查变量的具体值,以确保它符合期望。或者,如果你不关心它在这种特殊情况下的类型,就无需检查。在TS中,你依赖编译器执行此操作,但它只能检查这么多。你可以把这两种方法结合起来,但那又有什么意义呢?如果花时间编写定义,然后再编写代码以确保运行期间维护这些定义,那么为什么首先要选用它们呢?

4. 凌乱

另一个悖论是:本应为代码库增加清晰性和可读性的语言反而令其晦涩难懂。为了展示我的意思,请看以下在有效开源库中找到的一些示例:

  1. // TODO: dothismoreelegantly 
  2. ;((currentReducerasunknown) asReducer< 
  3.   NewState
  4.   NewActions 
  5. >) =nextReducer 

viewrawcreateStore.ts hostedwith❤by GitHub

这一行来自Redux库,这4行所做的就是将nextReducer分配给currentReducer。

  1. // HACK: SinceTypeScriptinheritsstaticpropertiestoo, wehaveto 
  2. // fightagainstTypeScriptheresoSubjectcanhaveadifferentstaticcreatesignature 
  3.  
  4. staticcreate: Function<T>(subscribe?: (subscriber: Subscriber<T>) =>TeardownLogic) => { 
  5.   returnnewObservable<T>(subscribe); 

viewrawObservable.ts hostedwith❤by GitHub

下一个例子来自RxJS库。我不知道你的情况,但如果我要和一个应该帮助我的工具战斗,我认为这不是一个好工具。

5. 不是超集,而是子集

TypeScript是编译成JavaScript的语言,根据定义它不能是超集。它限制了使用JavaScript所能做的事情,并且在提供虚假的内心平静的同时掩盖了JavaScript强大的一面。如果你真的想成为一个伟大的开发者,不要沉溺于一个安慰的谎言,试着去理解JavaScript的真正力量和它的灵活性。

6. 有更多的特点…

这个原因已经不再成立。诚然,当TS在2012年首次引入时,它具有类等特性,但在JS中仍然不可用。但是JS从那时起已经走了很长的路,现在TS正在努力跟上。如果JS中缺少任何东西,那么就需要一个babel插件来完成。

7. 大公司会选择它…

我不敢相信有人会认为这是一个原因。大公司也使用遗留的代码库,进行税务欺诈,歧视妇女。为什么他们突然使用TypeScript是一个很好的例子呢?

[[317741]]

来源:Pexels

TypeScript的确有许多好用之处,但不是什么情况都适用,小芯也不是什么“杠精”,只是希望大家可以客观看待~

 

来源:读芯术内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯