最近我开始使用Google Closure Tools进行javascript开发。到目前为止,我已经习惯在CoffeeScript中编写代码,但CoffeeScript生成的javascript似乎与Google Closure Compiler的高级模式不兼容。
添加Google Closure支持的CoffeeScript编译器是否有任何扩展?
答案 0 :(得分:7)
有各种工具旨在使CoffeeScript与Google Closure Tools一起使用。我将描述其中三个:
特点:
in
运算符和其他各种不兼容问题@constructor
和@extends
注释goog.provide
语句
include namespace as alias
支持已转换为goog.require
和goog.scope
缺点:
My.Long.Named.Car
不能在类定义中称为Car
,因为纯CoffeeScript允许)provide
include
免责声明:我是此解决方案的作者
这个解决方案的灵感来自Bolinfest的工作,并以这些方式扩展它:
goog.scope
@constructor
和@extends
注释被生成的provide
cast<typeToCastTo>(valueToBeCast)
语法在https://github.com/hleumas/coffee-script/wiki
了解详情与上述两种解决方案不同,Steida的Coffee2Closure是由上游非虚拟CoffeeScript生成的javascript代码的后处理器。这种方法有一个主要优点,即不需要或只需要稍微更新一下,继续开发CoffeeScript并且仍然是实际的。但是,根据这种方法的本质,某些功能无法提供。目前它只修复了类和绑定,循环,in
运算符和其他一些不兼容性。它不支持自动注释生成,类型转换或自定义关键字。