微软发布了 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
评论