最新公告
  • 欢迎您光临AA分享网,这里是高级程序员技术学习、分享的分享平台立即加入我们
  • 7个不使用TypeScript的理由

    大家都喜欢TypeScript。它“解决”了JS的很多问题,它是JS的“超集”,它会让你的代码不容易出错,而且阅读起来很愉快。使用TypeScript有很多好的理由,但我要给你7个真正好的理由不要使用。

    有风险

    哗,怎么会有风险呢?如果TypeScript添加类型定义并在编译时检查它们,这怎么可能有风险?以及IDE集成会警告你任何类型不匹配?正是因为如此。TypeScript仅在编译时检查类型,并且仅检查可用的类型。任何网络调用,系统库,特定于平台的API和无类型的第三方库都无法与TypeScript通信。 当你习惯了对类型进行检查,不用完全理解代码和平台,错误和bug就会体现出来。

    使用JS,你对类型不做任何假设,你检查变量的具体值,以确保它是你所期望的。或者,如果你不关心它的类型,在这种特殊情况下,你不关心。在TS中,你依靠编译器为你做,但它只能检查这么多。你可以把这两种方式结合起来,但那有什么意义呢?如果你会花时间写定义,然后花时间写代码来确保这些定义在运行时得到维护,那为什么一开始就要有这些定义呢?

    太乱了

    另一个悖论是:语言本应该为代码库带来清晰和可读性,但它却使代码库变得模糊了。为了说明我的意思,请查看一些我在流行的开源库中找到的示例:

    // TODO: do this more elegantly
    ;((currentReducer as unknown) as Reducer<
      NewState,
      NewActions
    >) = nextReducer

    这是来自Redux库的,所有这4行代码都将 nextReducer 分配给 currentReducer

    下一个例子如果来自RxJS库。

    // HACK: Since TypeScript inherits static properties too, we have to
    // fight against TypeScript here so Subject can have a different static create signature
    /**
     * Creates a new cold Observable by calling the Observable constructor
     * @static true
     * @owner Observable
     * @method create
     * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor
     * @return {Observable} a new cold observable
     * @nocollapse
     * @deprecated use new Observable() instead
     */
    static create: Function = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => {
      return new Observable<T>(subscribe);
    }

    我不知道你是怎么想的,但如果我不得不打一个本应帮助我的工具,我不认为这是一个好工具。

    它不能解决问题

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

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

    它不是超集,而是子集

    TypeScript是编译成JavaScript的东西,从定义上看,它不可能是一个超集。它限制了你使用JavaScript所能做的事情,掩盖了它强大的一面,同时提供了一种虚假的安心感。如果你真的想成为一名优秀的开发者,就不要满足于安逸的谎言,要试着去了解JavaScript的真正威力和它的灵活性。

    它是开源的,仅此而已

    使用TypeScript的许多原因都表明它是开源的。的确,TS编译器是在MIT许可下分发的。但它仍然被微软这个垄断巨头所控制,它在开源方面的进步只不过是一种营销手段。不要把开源和民主混为一谈,微软仍然可以自由地对TS做任何事情,而JS则是由一个国际委员会管理,没有经过社会的认可,是不会改变任何东西的。

    但是大公司使用它…

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

    但是它具有更多功能……

    现在不一样了。的确,2012年TS刚推出的时候,它有类等功能,在JS中还是没有的。但是JS从那时起已经有了长足的进步,现在TS也在努力的追赶。如果JS有什么缺失,有一个babel插件可以做到。

    感谢你的阅读,希望你喜欢这篇文章!

    更多web开发知识,请查阅 HTML中文网 !!

    以上就是7个不使用TypeScript的理由的详细内容,更多请关注其它相关文章!

    AA分享网一个高级程序员的学习、分享的IT资源分享平台
    AA分享网-企业网站源码-PHP源码-网站模板-视频教程-IT技术教程 » 7个不使用TypeScript的理由

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    站壳网
    一个高级程序员模板开发平台

    发表评论

    • 74会员总数(位)
    • 2802资源总数(个)
    • 57本周发布(个)
    • 10 今日发布(个)
    • 237稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情