是否可以在一个Angular-2项目中混合三种语言,例如将文档中的应用程序编写为Dart中的Componet和JS中的另一个组件?
答案 0 :(得分:3)
JS TypeScript。 TypeScript是JavaScript的超集,但是如果你使用Angular2 JS库来构建组件,那么这些组件不太可能与使用TS构建的组件一起工作(这里不完全确定)。
你绝对不能将Dart与其他两个混合使用。
Dart Angular2应用程序依赖于整体构建,这不适用于JS或TS组件中的混合。
可以做的是引导3个根组件,其中每个组件使用不同的语言构建,但在一个根组件中,混合语言不太可能或不可能工作(见上文)。
答案 1 :(得分:1)
是的,这是可能的,因为它们都将被翻译成JS,但我不建议这样做。 避免这种混合的原因是难以维护代码。这些语言中的每一种都有自己的模式和做事方式。通过混合它们,您将需要创建冗余的抽象和映射(例如Dart组件的TypeScript类型),单元测试将按技术进行隔离。想象一下,有一天你需要再为项目添加一个开发人员。如果只有这些技术中的一种,候选人的搜索和评估就像在工作描述中指定单一技能一样简单。但是当你有3个时,很难找到具备所有这些技能的开发人员。即使你会发现这个“忍者”,仍然需要教他如何使用混合物。你需要向他解释构建脚本的所有黑客/技巧,然后转移一个骶骨知识何时以及为什么偏好一种技术而不是另一种技术。 我建议你坚持使用TypeScript,因为它是JS的超集,它的功能符合ECMA标准。