有没有办法在JavaScript中强制使用类型?我正在考虑一个预处理器,它接受用Java3或ActionScript编写的输入文件,并将其转换为JS。
我不需要大的运行时工具,我只需要在我的工作流程中引入编译时的概念,并在我的代码上运行简单的编译时检查(也使用接口)。我不需要来自Java或Flex的API,只需要语法。
也可以根据IDL定义检查标准浏览器函数,但这不是必须的。
发布于 2011-08-13 23:19:13
你应该看看haxe project。
Haxe是一种非常好的类型化语言,它使用类型推断(也就是说,你不需要写很多类型声明),但它在编译时强制类型正确性。
该语言具有类似javascript的语法,并且编译器可以为用于javascript、as3、c++或PHP的neko虚拟机生成代码。
更新
如今,最流行的选择可能是Typescript,它是Javascript的超集,允许在编译时强制执行可选的类型声明。
发布于 2013-06-14 16:22:16
虽然我来得有点晚,但我认为绝对值得一提的是Dart (谷歌的产品)和TypeScript (微软的产品)。
随着应用程序变得越来越基于web,JavaScript正迅速成为一种非常流行的语言。然而,正如您所指出的,JavaScript缺乏类型安全,以及其他一些东西;类、接口和包/名称空间/模块。
这就是Dart和TypeScript介入的地方。这些语言本质上是JavaScript的超集。当您编写Dart或TypeScript代码时,它将被编译成干净的、符合标准的JavaScript。
Dart和TypeScript的优点是它们提供了类型安全、接口、类等。因此,允许您编写更干净、可伸缩、可管理的应用程序,这些应用程序仍然可以在浏览器中运行。
作为一名面向微软的程序员,我对TypeScript有很多经验,包括积极参与该语言的开发(您可以在codeplex上找到有关TypeScript开发的信息)
我目前唯一担心的是TypeScript缺乏一些基本的功能。目前的一些实现(0.9.0 alpha)似乎有一些同样大的漏洞,这可能会阻止精明的开发人员目前使用它(当然,可能会发生变化)。
我真的不能评论Dart,因为我只使用过几次,但我使用Dart的总体体验很好!
发布于 2011-08-13 20:56:33
GWT做了该做的事,但在大多数情况下,它是一种过大的方式。您可以看看使用anotations伪造类型化保险箱的googles closure框架
https://stackoverflow.com/questions/7050507
复制相似问题