Share via


为何TypeScript是任何事情的答案?

[原文发表地址] Why does TypeScript have to be the answer to anything?

[原文发表时间] 2012-10-03 0:38

免责声明 : 我不为TypeScript工作。我也不涉及该团队的工作,这只是我自己的意见和猜想。

vs-refactor宣布了TypeScript之后,人们都说" TypeScript显然是微软对谷歌Dart 的答案"或" TypeScript是 微软对CoffeeScript 的答案"。

今天我与Jez Humble聊到了对TypeScript的浓厚兴趣他引用了:

当聪明的人表现出对计算历史一无所知时,这令人感到失望。- Jez Humble

TypeScript已经问世一天了。要看到它是否有用还为时过早,但看上去前途似乎一片光明。

TypeScript和Dart

人们将TypeScript与 Dart 进行了比较。这就像将苹果与化油器相比较一样。TypeScript建于 JavaScript之上,所以没有与JS 互操作问题。Dart 是从scratch编写的本机虚拟机。Dart 与javascript之间互相操作......,但它不是 JS。例如,它甚至不使用 JavaScript 数字类型。

TypeScript和 CoffeeScript

我是一个超级的 CoffeeScript 粉丝,虽然它是一种有着不同语法的语言。我喜欢TypeScript的部分是—到目前为止- TypeScript的静态类型可以启用更好的工具,警告波形线、 简单的语句完成,再加上智能重构功能。您还获得围绕代码的轻松导航,以及查找引用、 重命名、 和更多。目前你在CoffeeScript中得不到这些功能。

TypeScript是什么?

TypeScript是 JavaScript 的超集,你编写它就像你编写我喜欢的 JavaScript一样。任何现有的 JavaScript 已经是TypeScript。有人争论说TypeScript是专门针对那些不想学 JavaScript 的人。我不那样认为。正如Ward Bell在一封电子邮件中所说:

如果JSLint 是一根拐杖,那么TypeScript不仅仅是一根拐杖。它并不掩藏JavaScript (就像CoffeeScript 也倾向于此一样)。- Ward Bell

我觉得Ward说得很好。人们抱怨静态类型,但他们不会抱怨 JSLint。TypeScript提供了可选的类型批注-这很难是JavaScript的误用。

通过使用TypeScript几天后,我的观点是这样的。它为您提供类型检查、显式接口和更简单的模块出口。事实上,它有点像以与今天的 JavaScript 相兼容的方式提早获取明天的 ECMAScript 6。ES6 在至少一年内不会问世,但我们目前可以使用其中的部分功能。

我喜欢TypeScript的部分是:

我不喜欢TypeScript(这些大多是执行的事情)的部分是

  • 没有像Visual Studio 现有的 CoffeeScript 编辑器一样的分屏编辑器
    • 更新: 虽然这不是 " 官方 " 的支持,但Mads已 经向Web 2012 Essentials 添加了一个分屏编辑器 。这两个团队将在更官方的解决方案上协同工作。
  • 保存时不生成.js,需要一个生成。
  • 您必须添加一个BeforeBuild 来指向你的ASP.NET 应用程序的 CSPROJ:

<Target Name="BeforeBuild"> <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" /> </Target>

我会继续使用TypeScript,并评估它,但作为一名C# 程序员,我认为它是开源的, 它创建 JavaScript,它给我舒适的感觉,基于这些事实,这意味着它会填满一个有用的利基市场。

这段引用来自Luke Hoban,TypeScript的合作者,它一语点睛。

"CoffeeScript 之对于Ruby就像TypeScript之对于 Java / C# / C + +一样"-Luke Hoban

如果你喜欢Ruby,那么你将会喜欢 CoffeeScript,因为它使 JavaScript 更像Ruby。TypeScript也同样如此。通过使用您习惯的语言构造,它以最终兼容和语法友好的方式将有用的功能带给了JavaScript。