Gre*_*ber 18 coffeescript typescript
我有一个构建链设置,将文件从coffeescript转换为typescript到javascript.我的问题是:将类型签名添加到coffeescript函数的最简单的侵入方法是什么?
coffeescript通过反引号支持原始javascript.但是,这意味着coffeescript不再理解反引号片段.
Coffeescript拒绝这些:
f = (`a:String`) -> a + 2
f = (a`:String`) -> a + 2
Run Code Online (Sandbox Code Playgroud)
我可以在函数上面写这个:
`var f = (String) => any`
Run Code Online (Sandbox Code Playgroud)
它编译,但不进行类型检查.我想这是因为Coffeescript已经宣布了这个变量.
我能弄清楚如何使其工作的唯一方法需要大量的样板
f = (a) ->
`return (function(a:String){`
a + 2;
`})(a)`
Run Code Online (Sandbox Code Playgroud)
在新的Coffeescript Redux编译器中,反引号似乎无法正常工作:https: //github.com/michaelficarra/CoffeeScriptRedux/issues/71
我很清楚这是一个值得怀疑的努力,它现在只是一种体验.我目前使用contract.coffee,但我正在寻找实际类型.
Tob*_*nik 17
这是我的项目,它将CoffeeScript转换为TypeScript,然后将其与包含类型的d.ts文件合并.然后报告编译错误,如果有的话.
它叫做Compiled-Coffee.
Fen*_*ton 16
如果你想编写CoffeeScript,最好编写CoffeeScript并编译为JavaScript.
TypeScript的好处主要是设计时间的好处和更好的工具,因此在CoffeeScript和JavaScript中使用它会增加很少的好处,因为您将获得基于CoffeeScript代码的设计时间和工具.
您可以使用在TypeScript中使用CoffeeScript编写的库,反之亦然,这样您就可以在CoffeeScript中维护CoffeeScript库,并在决定使用哪种方式时将它们用于新的TypeScript文件中.
更新:我不确定如何对这个答案进行如此广泛的误解 - 我将假设我没有很好地解释这一点(而不是假设它仅仅是稻草人论证或对语言的超敏感性比较).
TypeScript确实是JavaScript的类型系统.静态类型在工作流程的早期作为程序员更有用.在IDE中设置时间警告意味着快速纠正常见错误,例如错误输入的变量名称,错误的参数,无效的操作等等.代码加下划线并带有错误注释意味着即时反馈.在编译时有这个很好,但你的反馈循环更长.鉴于在使用TypeScript时所有类型都被删除,我甚至不会讨论运行时.
至于所有"TypeScript vs CoffeeScript"评论 - 这个问题根本不是这个问题.问题是从CoffeeScript到TypeScript再到JavaScript.让我们来看看为什么这可能不理想:
归档时间: |
|
查看次数: |
7276 次 |
最近记录: |