Javascript 有可能混合使用打字脚本和咖啡脚本吗?

Javascript 有可能混合使用打字脚本和咖啡脚本吗?,javascript,coffeescript,typescript,Javascript,Coffeescript,Typescript,我刚刚开始探索新的JavaScript想法,我印象深刻。乍一看,CoffeeScript和TypeScript都有一些很棒的特性。它们都被编译成JavaScript。CoffeeScript很棒,因为它使代码更短更清晰。另一方面,TypeScript为我们提供了构建复杂应用程序的可能性 有可能混合使用打字脚本和咖啡脚本吗?我的意思是-在同一个文件中利用这两个选项?简短回答:否。 您需要将一个CoffeeScript/TypeScript文件编译成一个JavaScript文件,这意味着对于给定的语

我刚刚开始探索新的JavaScript想法,我印象深刻。乍一看,CoffeeScript和TypeScript都有一些很棒的特性。它们都被编译成JavaScript。CoffeeScript很棒,因为它使代码更短更清晰。另一方面,TypeScript为我们提供了构建复杂应用程序的可能性


有可能混合使用打字脚本和咖啡脚本吗?我的意思是-在同一个文件中利用这两个选项?

简短回答:否。

您需要将一个CoffeeScript/TypeScript文件编译成一个JavaScript文件,这意味着对于给定的语言,这个文件作为一个整体必须语法正确


CoffeeScript和TypeScript在语法上不可互换。在最好的情况下,就语法使用而言,您必须求助于一些最低的公分母,但这将完全违背使用这两种语言中的任何一种而不是普通JavaScript的目的。

您不能,这确实是一个坏主意

让我们假设您可以在一个文件中包含CoffeeScript和TypeScript,那么您需要可以在这两个文件中编程的开发人员,因此您的产品将更加昂贵。此外,您将失去使用lints检查代码的任何合理机会

我甚至无法想象,当组合CoffeeScript和TypeScript时,使用模块(commonjs、AMD、ES6等)会遇到什么样的麻烦

如果您使用一种语言,您通常会从其作者那里获得如何正确使用该语言的教程。当你混合语言时,你必须想出“在我的环境中做X的正确方法是什么”。这些挑战听起来微不足道,但对于任何严肃的项目来说,它们都可能是致命的


如果您可以选择,我建议您使用TypeScript,因为它可以避免大量运行时错误。它的视觉效果不如CoffeeScript好,但这并不是你通常需要支付的费用。

好吧,如果你想尝试一下,你可以创建一种类似CoffeeScript的语言,它具有类型化变量并编译成类型化脚本(编译成JavaScript)。我认为这比实际教授CoffeeScript类型的变量或直接编译为JS要容易得多。查看以了解它们是如何解析、转换和打印生成的代码的。编写transpiler实际上并不像听起来那么复杂。

看看以下几种状态:

您喜欢TypeScript的类型安全性和 咖啡脚本?那样的话,咖啡是给你的!它结合了 通过定义文件将CoffeeScript与TypeScript的类型系统连接。 在中创建同名的*.coffee文件和*.d.ts文件 您(可选)键入的内容。其余部分自动处理


不是现在,CS和TS都有一堆不兼容的语法。对于那些类型的
CoffeeTypeScript
文件,您需要一个专用的编译器,而该编译器并不存在

我对这种语言的外观很感兴趣,但我担心它会有太多的选择,而且很难学习(相对于CS或TS)。我可以想象用它进行编程会有点类似于
python