BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

最新的TypeScript增加了泛型支持

| 作者 Jeff Martin 关注 16 他的粉丝 ,译者 姚琪琳 关注 0 他的粉丝 发布于 2013年6月26日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

微软发布了TypeScript 0.9,该版本添加了一些新的特性,包括在前端使用泛型的能力。TypeScript微软为了让JavaScript更适合于大型应用程序开发所做的尝试,它结合了类型检查和静态代码分析。

新特性的亮点包括:

  • 泛型支持将这个流行的特性带到了TypeScript中,使其可以应用更好的类型检查和现代编程模式
  • 常量重载
  • 支持通过“export = ”来直接导入类
  • 枚举
  • 为语言的未来成长进行了重新设计。为更好地支持增量编译进行了改进,为支持更大型的代码库(超过10万行)进行了扩充,并修复了CodePlex上的160多个错误报告

Channel 9上最近发布了一场有趣的圆桌会议,会议成员包括TypeScript小组的Anders Heljsberg、Steve Lucco和Luke Hoban。这场讨论从另外一个角度来审视0.9的新特性。Hoban发现TypeScript支持泛型后,即使程序员不直接使用泛型也能从中受益。这是因为它可以改善智能感知的性能并辅助错误检查。

在讨论时,Hejlsberg举了下面这个例子来演示0.8到0.9的改变:

var a = [ “hello”, “world”, “….” ]
var n = a.map( s => s.length)
(where n is an array of numbers)
TypeScript 0.8:  s.   <- IntelliSense would show nothing
TypeScript 0.9:  s.   <- IntelliSense can show completions,
 including length

Hejlsberg还指出TypeScript的泛型实现类似于Java,而不是C#。这部分原因是由于TypeScript的目标是产生可读的代码。因此像async这样的特性目前还没有开发,因为JavaScript当前的局限性意味着支持这些会产生过于复杂的代码。(他们举了IcedCoffeeScript这个例子,这就是小组在TypeScript的代码生成方法中所试图避免的结果。)如果JavaScript支持迭代器和生成器,那么TypeScript就可以支持async并产生人类可读的代码。未来JavaScript的更新也许会使这一切成为可能。

查看英文原文TypeScript Release Adds Generics

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

xxoo by wei anthony

泛型支持和大型应用是互斥的吧?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT