我们有了JavaScript,然后有了Flash,然后有了Silverlight,然后HTML5拥有了它们。
那么TypeScript背后的动机是什么?TypeScript将解决哪些问题,我们将获得哪些改进?
我们有了JavaScript,然后有了Flash,然后有了Silverlight,然后HTML5拥有了它们。
那么TypeScript背后的动机是什么?TypeScript将解决哪些问题,我们将获得哪些改进?
Answers:
在我看来,它是一种静态类型的,基于类的语言,可以编译为JavaScript。这是一个好主意,其他人也有。
对于使用静态类型的,基于类的语言和JavaScript进行开发的任何人,优点都应该显而易见:
因此,正如我们所看到的,基本思想是一个很好的思想。话虽如此,我对语言本身一无所知,因为我没有使用它的经验。但是我使用了Smart(链接到上面),发现它是用于Web开发的非常强大和有用的工具。
据我所知,使用TypeScript有很多充分的理由。正如梅森·惠勒(Mason Wheeler)所说,首先是编译器。或更确切地说,编译器进行的所有检查。JSLint和其他工具很有用,但是遗漏了一些问题,有时是完全错误的。我当然欢迎这种“创新”。
然后是一个实型系统,可以提高可读性并强制执行正确的类型。毕竟,这提高了开发速度。
对我来说,很棒的事情之一就是工具支持。这可能是类型系统的副作用,但是效果很好。确实有必要,因为当前的JavaScript工具支持已无用。
TypeScript尝试扩展JavaScript。编译器生成非常好的JavaScript。除此之外,它还遵循ECMAScript 6建议。(例如,箭头函数语法,参数默认值,模块等。
它使使用模块和类更加容易。使用JavaScript中的类和模块实际上是可能的,而且很普遍,但是它需要一些样板代码。而且,阅读起来并不容易。TypeScript允许像Java或C#一样编写类,接口和模块语句,如果您问我的话,这要容易得多。
但毕竟,它仍然只是JavaScript。无需学习新的语言或语法。它唯一添加的是可选的类型系统(很棒而过期)。
然后是“ definitions库”,这意味着我可以使用我的所有JavaScript库,而无需重写甚至不修补它们。但是,我现在有其他类型系统。
我一定会尝试的!
最后一件事,HTML5和TypeScript之间没有竞争。但这是另一个故事。
我们有了JavaScript,然后有了Flash,然后有了Silverlight,然后HTML5拥有了它们。
这根本不是真的。Html5不拥有它们,它引入了简化多媒体使用的新标记,并探索了新时代浏览器的优势(例如在渲染html时使用硬件加速)。
那么TypeScript背后的动机是什么?
使用动机可能是出于动机。TypeScript的所有功能,例如:静态检查,基于符号的导航,语句完成和代码重构,都是考虑使用它的强烈理由。
此外,它提供了类,模块和接口来帮助您构建健壮的组件。这些功能在开发时就可用于高信任度的应用程序开发,但已编译为简单的JavaScript。
它可能被视为管理javascript开发的工具,而不是被编译为JS的全新语言。它不想像Dart这样的服务器端开发语言,也不想像CoffeeScript这样的语法。它不想采用一种流行的语言(它是核心库)并将其编译为GWT或script#之类的JS。TypeScript甚至遵循为下一个JS版本提议的相同“类”语法。
我认为今天的大多数Web开发都是使用真正的javascript完成的,仅在客户端。诸如Dart,GWT之类的语言或框架不适合于此。如果您去喝咖啡脚本,就会出现新的语法。而且您必须了解coffeescript和JS。虽然TypeScript只是添加了一些附加的面向类型的功能,这些功能已融合到JS中,从而使开发人员免于类型特定的错误(这是JS错误的很大一部分),并为开发工具提供了有关开发人员意图的更多信息。
这种方法并不新鲜。转到“静态输入”部分
本文解决了您的查询-http : //www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/
我认为,这是将共享的,不可靠的废话(javascript)转换成可实际用于大型项目的专有语言的一种努力。
应该将其与GWT进行比较,后者具有类似的目标,但通过使javascript不属于该语言而采用了一种更简洁的方法。以及Java小程序或Flash,它们采用非常干净的方法来定义独立于浏览器的完整运行时环境。
您的意见可能会有所不同,但我认为它注定要失败,只要它取决于本机提供(各种,不一致的)JavaScript实现和DOM模型的浏览器。