HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

再见 CoffeeScript,你好 TypeScript

  • 2015-10-29
  • 本文字数:1029 字

    阅读完需:约 3 分钟

在网页应用的开发方面,CoffeeScript 曾经为广大程序员提供了很好的帮助。然而,微软公司推出的 TypeScript 正在超越 CoffeeScript 成为大家的首选。

作为一个在 2009 年出现的语言,CoffeeScript 目前已经十分成熟。它给为用户提供了很多的语法糖以及基于类的继承,却又保证了尽量简洁的语法。而且,其流行程度为团队之间的高效交流提供保证。然而,CoffeeScript 也存在一些很难解决的问题。Heap 的软件工程师 Jiawei Li 表示,CoffeeScript 至少存在三个方面的缺点。首先,CoffeeScript 中的变量初始化和重新赋值很容易出现混淆。由于变量不需要声明,在内层函数新定义的变量可能和已有的外部变量重名,造成程序执行混乱。其次,CoffeeScript 中强大的?操作符使得加大了阅读代码的难度。使用?来代替null/undefined的确可以简化代码,但编程人员却使得阅读代码变得困难。最后,CoffeeScript 模糊的语法定义使得编译后程序的行为无法掌控。以foo bar and hello world为例,其编译后的结果就可以是foo(bar) && hello(world)或者foo(bar && hello(world))

Jiawei 表示,企业目前对相关编程语言的核心关注点主要集中在两个方面——代码的易读性和易于快速开发。代码易读保证了调试工作可以高效进行;易于开速开发则保证了产品的发布时间。CoffeeScript 的缺点正好刺到了企业的痛点。因此,TypeScript 一经推出便迅速崛起。

TypeScript 的优点包括:支持可选的静态类型和基于类的面向对象编程、内置的类型注解保证了代码编译时的正确性、版本更新速度很快以及支持在第三方 JavaScript 中增加类型等。尽管 TypeScript 还存在不成熟的地方(如与 ES6 的兼容性方面),其特性很好的保证了大规模 JavaScript 应用开发的效率。未来,TypeScript 必然会有进一步更好的表现。

最后,Jiawei 也指出了一些 TypeScript 有待改进的地方。TypeScript 还欠缺模式匹配和隐式转换等语言特性。而且,针对变量的取值为 null 或者 undefined 的情况,TypeScript 还没不能很好的进行处理。JiaWei 建议,可以添加更多的类型机制来解决该问题。其中包括使用Options来决定是否允许变量为null/undefined、使用Trys来声明事情成功或失败以及使用FuturesPromises来声明异步操作成功或失败等。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-10-29 19:008568
用户头像

发布了 268 篇内容, 共 122.3 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

基于图神经网络的动态物化视图管理

KaiwuDB

KaiwuDB 物化视图管理

使用RFC跳过权限校验的方法

不在线第一只蜗牛

用户 abap 业务流程

1688商品列表数据接口(1688.item_search)丨1688API接口

tbapi

1688API接口 1688商品数据接口 1688商品列表数据接口 关键词搜索1688商品数据

为什么美国服务器是业务国际化的首选?深入探讨其关键优势

一只扑棱蛾子

美国服务器

三掌柜的2023年国产AI体验之路

三掌柜

年终总结 2023 2023年 年度

DePIN:去中心化基础设施的新篇章

TechubNews

区块链 web3 DePIN

IPQ8072 and IPQ8074: The difference between enterprise-grade and consumer-grade routers

wallysSK

上升到人生法则的贝叶斯理论

小齐写代码

TcpDump

虚实的星空

HTTP tcpdump

从数据洞察到市场变革:我们的 Web3 愿景

Footprint Analytics

区块链 #Web3

【行云流水线】满足你对工作流编排的一切幻想~skr

京东科技开发者

什么是爬虫,为什么爬虫会导致服务器负载跑满

德迅云安全杨德俊

赛迪顾问发布最新中国大数据市场报告,腾讯云稳居领导者行列

腾讯云大数据

大数据

利用全面预算管理,构建企业数智化管理体系

智达方通

数智化转型 全面预算管理

玩转云端| 多云时代,数据管理就该这么“库”!

天翼云开发者社区

数据库 云计算

英特尔的2023:以强大执行力推进产品、技术创新

E科讯

作为铭文跨链赛道龙头,SoBit 有何突出之处?

西柚子

安全可信丨业内领先!天翼云公有云管理平台通过密评!

天翼云开发者社区

云计算 公有云 云平台

Navicat Premium 15 for Mac(数据库开发工具)v15.0.36中文激活版

iMac小白

文心一言 VS 讯飞星火 VS chatgpt (167)-- 算法导论13.1 7题

福大大架构师每日一题

福大大架构师每日一题

微信多开 WechatTweak for Mac(微信多开、消息防撤回工具)v3.8.6中文集成版

iMac小白

AnyGo for Mac v6.9.5激活版 GPS定位软件

iMac小白

国产化系统中遇到的视频花屏、卡顿以及延迟问题的记录与总结 | 主赛道

安全可信|这朵政务云通过中央网信办云计算服务安全评估增强级认证!

天翼云开发者社区

云计算 安全 云服务

月薪50k万的程序员,和三个15K的程序员,谁的开发效率高?

伤感汤姆布利柏

程序员 互联网 高薪

HyperDock for mac(Dock优化工具安装) v1.8.0.10永久激活版

mac

苹果mac Windows软件 HyperDock Dock优化软件

以全面预算管理推进现代销售计划的建立

智达方通

全面预算管理 销售计划

Acrobat Pro DC 2023 for mac(专业PDF编辑软件)中文直装版

iMac小白

再见CoffeeScript,你好TypeScript_JavaScript_张天雷_InfoQ精选文章