2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

为何 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:193229
用户头像

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

关注

评论

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

Splunk Enterprise 10.0.0 发布,新增功能简介

sysin

Splunk Enterprise

设备端语音处理技术解析

qife122

语音识别 模型压缩

VC维度1概念类的差分隐私学习器最优解

qife122

差分隐私 VC维度

ROS系统MoveIt玩转双臂机器人系列(三)--利用controller控制实际机器人

芯动大师

ROS

Metasploit Pro 4.22.8-2025071801 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

Shotcut 25.07 (Linux, macOS, Windows) - 免费开源视频编辑器

sysin

Shotcut

低能离子束芯片编辑技术实现高效设计

qife122

芯片设计 硬件优化

Metasploit Framework 6.4.76 (macOS, Linux, Windows) - 开源渗透测试框架

sysin

Metasploit

Animate.css - 轻松实现网页动画效果

qife122

CSS 前端

AWS新工具推荐移除未使用的权限

qife122

AWS 权限管理

单样本学习计算任务的新方法

qife122

机器学习 元学习

谷歌耗时一月关停服务器间谍软件Catwatchful

qife122

网络安全 数据泄露

AppAuth-iOS - OAuth 和 OpenID Connect 客户端 SDK

qife122

ios Oauth Authentication

VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版

sysin

esxi

虚拟机器人如何理解自然语言指令

qife122

人工智能 自然语言处理

攻破天网系统——Real World CTF (2022) 解题实录

qife122

CTF SQL注入

保护通信安全:端到端加密实战指南

qife122

网络安全 signal

javax.security.auth.login.LoginException: Cannot locate KDC

刘大猫

人工智能 数据挖掘 算法 LoginException 算法数据分析

SonarQube Server 2025 Release 4 新增功能简介 - 代码质量、安全与静态分析工具

sysin

SonarQube

什么是列存储(Columnar Storage)?深度解析其原理与应用场景

镜舟科技

数据分析 StarRocks 湖仓一体 列存储 延迟物化

VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)

sysin

esxi

[大厂实践] Netflix 分布式计数器抽象

俞凡

架构 大厂实践

AI如何重塑芯片设计未来

qife122

芯片设计 半导体技术

计算机图形学在服装定制中的创新应用

qife122

计算机图形学 算法优化

自研 DSL 神器:万字拆解 ANTLR 4 核心原理与高级应用

Java随想录

编译 #java

Studio 3T 2025.13 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端

sysin

Studio 3T

VMware NSX 4.2.3 发布,新增功能概览

sysin

nsx

跨行星共识(IPC)实现区块链突破性扩展

qife122

区块链 web3

基于Ollivier-Ricci曲率的流形结构恢复算法

qife122

机器学习 计算几何

Nexpose 8.16.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

华为云云服务高级顾问叶正晖:华为对多模态大模型的思考与实践

数新网络官方账号

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