我有一个构建链设置,它将文件从咖啡脚本转换为打字稿到 javascript。我的问题是:将类型签名添加到 coffeescript 函数的最小侵入方式是什么?
coffeescript 通过反引号支持原始 javascript。但是,这意味着 coffeescript 不再理解反引号代码段。
Coffeescript 拒绝这些:
f = (`a:String`) -> a + 2
f = (a`:String`) -> a + 2
我可以在函数上面写这个:
`var f = (String) => any`
它编译,但不进行类型检查。我认为这是因为 Coffeescript 已经声明了该变量。
我能弄清楚如何让它工作的唯一方法需要大量的样板文件
f = (a) ->
`return (function(a:String){`
a + 2;
`})(a)`
在新的 Coffeescript Redux 编译器中,反引号似乎无法正常工作: https ://github.com/michaelficarra/CoffeeScriptRedux/issues/71
我很清楚这是一项可疑的努力,现在只是一个实验。我目前使用contracts.coffee,但我正在寻找实际类型。