我刚开始探索新的JavaScript想法,感觉非常好。初次接触,CoffeeScript和TypeScript都有很棒的特性。它们都编译为JavaScript代码。CoffeeScript让代码更加简洁明了,真是太棒了。另一方面,TypeScript可以让我们构建复杂的应用程序。
是否可能在同一个文件中混合使用TypeScript和CoffeeScript?我的意思是,能否利用它们两者的优点呢?
我刚开始探索新的JavaScript想法,感觉非常好。初次接触,CoffeeScript和TypeScript都有很棒的特性。它们都编译为JavaScript代码。CoffeeScript让代码更加简洁明了,真是太棒了。另一方面,TypeScript可以让我们构建复杂的应用程序。
是否可能在同一个文件中混合使用TypeScript和CoffeeScript?我的意思是,能否利用它们两者的优点呢?
简短回答:不行。
您需要将CoffeeScript/TypeScript文件编译成JavaScript文件,这意味着该文件必须作为一个整体在给定语言中语法正确。
CoffeeScript和TypeScript在语法上不能互换。最好的情况是,您必须采用某些最低公共分母来使用语法,但这完全违背了使用任何一种而不是纯JavaScript的目的。
你不能这样做,而且这是一个非常糟糕的主意。
假设你可以在一个文件中使用CoffeeScript和TypeScript,那么你需要有能够同时编程这两种语言的开发人员,因此你的产品将会更加昂贵。此外,你将失去使用代码检查工具(lints)的合理机会。
当结合使用CoffeeScript和TypeScript时,我甚至无法想象你将遇到什么样的模块问题 (commonjs、AMD、ES6...)。
如果你只使用一种语言,通常可以从它的作者那里获得有关如何以该语言的正确方式完成任务的指南。但是,当你混合使用不同的语言时,你需要自己提出“在我的环境中如何正确地完成X”这个问题。这些挑战听起来可能微不足道,但对于任何严肃的项目来说,它们可能是致命的。
如果可以选择,我建议使用TypeScript,因为它可以帮助您避免许多运行时错误。虽然它的外观并不像CoffeeScript那样漂亮,但这通常不是您受雇的原因。
请查看 compiled-coffee,其中说明:
你喜欢TypeScript的类型安全和CoffeeScript的简洁语法吗?那么CompiledCoffee就是为你而生!它通过定义文件将CoffeeScript与TypeScript的类型系统结合起来。你可以创建一个同名的*.coffee文件和*.d.ts文件,在其中(可选)输入类型信息,其余部分将自动处理。
目前还没有,因为CS和TS都有很多不兼容的语法。你需要一个专门的编译器来处理那些类型的文件,但是这样的编译器并不存在。
我对这种语言的外观非常感兴趣,但我担心它会有太多的选项,学起来会很困难(相对于CS或TS)。我想编程可能会有点类似于。