写点什么

为何 Asana 开始用 TypeScript

  • 2014-12-25
  • 本文字数:661 字

    阅读完需:约 2 分钟

团队任务管理平台提供商 Asana 的一个代码库里有上万行的 JavaScript 代码。随着时间推移,其中的代码越来越多,维护也越来越难。他们需要一种不同的语言。最终,他们出于以下几个方面的考虑选择了 TypeScript。

首先,TypeScript 可以产生简洁的 JavaScript 代码,更容易与现有的代码集成。它与 JavaScript 有非常紧密的映射关系,熟悉 JavaScript 的开发人员很容易学习使用,而且对于生成的 JavaScript 代码,更容易推断出其性能。

其次,有强大的工具支持,并且能够轻松地与 JavaScript 庞大而活跃的开源社区融合,如 IntellJ/WebStorm 对 TypeScript 提供了强大的支持,而 DefinitelyTyped 是一个生机勃勃的社区,为许多开源库提供了 TypeScript 定义。TypeScript 还通过积极维护的 gulp/grunt 提供了很棒的构建工具。

再者,TypeScript 支持强类型,使编译器和 IDE 能够在编译时而不是运行时发现错误,IntellJ 对其也有很好地支持。支持重构以及更好的代码导航功能有助于编写出质量更高的代码;上述两点都有助于提高代码编写效率。

最后,TypeScript 支持静态类型。这有两个方面的好处:一是可以确保客户端和服务器端采用同样的协议;二是允许跳过运行时检查,如 React.js 可以从中获得显著的性能提升

另外,将浏览器代码迁移到 TypeScript 只是 Asana 正在进行的几项重大改进中的一项,感兴趣的读者可以关注其官方博客


感谢郭蕾对本文的审校。

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

2014-12-25 04:193169
用户头像

发布了 1008 篇内容, 共 439.5 次阅读, 收获喜欢 346 次。

关注

评论

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

使用GeekCode在开发中分离计算和存储

王泰

CloudIDE 云 IDE

教你搭建一个Telegraf+Influxdb+Grafana 监控系统

华为云开发者联盟

云计算 华为云

【协程】ViewModelScope源码解析

yechaoa

android 协程 6月月更 ViewModelScope

传统企业数字化转型,到底难在哪里?

飞算JavaAI开发助手

手慢无!‘’阿里爸爸‘’6月最新开源新版Spring Cloud Alibaba全体系10w字全彩笔记

Java全栈架构师

Java 程序员 面试题 架构师 SpringCloud

用 docker 创建 jmeter 容器,实现性能测试

伤心的辣条

Python 程序员 软件测试 自动化测试 程序员‘

【题解】剑指 Offer 05. 替换空格(C语言)

未见花闻

6月月更

什么是真正的敏捷开发?敏捷开发与瀑布开发有何不同

阿里云云效

云计算 阿里云 敏捷开发 研发 开发模式

认识一下什么是JSP

华为云开发者联盟

Java jsp 网页 前段

一个算子在深度学习框架中的旅程

OneFlow

深度学习 算法 框架设计

ScheduledThreadPoolExecutor

急需上岸的小谢

6月月更

窃取证书的攻击流程及抓包分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

SOL staking质押现已在 AscendEX Earn 上线

鳄鱼视界

Python自动化测试之模块、包与路径知识讲解

伤心的辣条

Python 程序员 程序人生 软件测试 自动化测试

小程序容器技术,加速工业互联网平台建设

Geek_99967b

小程序 工业互联网 小程序容器

改变世界的开发者丨以梦为码,华工小哥的致青春

华为云开发者联盟

数据库 华为云

Charles 工具如何做断点测试

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

2022,云上开发新纪元

Heighliner

云原生 #k8s 开发者, 远程开发

天人合一物我相融,站点升级渐进式Web应用PWA(Progressive Web Apps)实践

刘悦的技术博客

前端 App 应用 Web JS SDK PWA

直播场景音频降噪,传统算法 VS AI 算法对比和实践

融云 RongCloud

vue-class与style绑定

小恺

6月月更

Nydus —— 下一代容器镜像的探索实践

SOFAStack

开源 云原生 dragonfly 容器镜像

力扣每日一练之二分查找Day10

京与旧铺

6月月更

测试基础之:自动化测试

甜甜的白桃

软件测试 自动化测试 6月月更

如何玩转“听到头疼用了爱”的函数计算

明道云

好的产品帮助文档可以留住一个用户的心

小炮

始于架构,精于治理|阿里云中间件开发者大会火热报名中

阿里巴巴中间件

阿里云 开发者 中间件

基于EasyCV复现ViTDet:单层特征超越FPN

阿里云大数据AI技术

自然语言处理 异构计算 深度学习/机器学习 编译码

Java—线程安全

武师叔

6月月更

详解GPU虚拟化技术

Finovy Cloud

人工智能 云渲染 GPU服务器

从概念到安全实践:软件供应链基础指南

SEAL安全

DevOps 安全 DevSecOps 软件供应链

为何Asana开始用TypeScript_JavaScript_谢丽_InfoQ精选文章