Angular使用纯JavaScript

4

我很想开始学习Angular2,但问题是我不喜欢使用TypeScript。我想使用纯JavaScript来做。但似乎没有为此提供适当文档。您有任何推荐的链接可以开始吗?第二个问题是:学习JavaScript版的Angular是否真的值得,因为它没有相应的文档?还是应该接受TypeScript?


2
可能是[Angular 2中ES5和ES6的依赖注入] (https://dev59.com/4VkT5IYBdhLWcg3wRNQR)的重复问题。 - Estus Flask
3
当然,它有相关文档(https://angular.io/guide/ts-to-js)可供参考。 - Estus Flask
5
走Typescript的路线。把它看作是一种有类型的JavaScript。 - BogdanC
3
如果您了解面向对象编程结构,那么Typescript很容易理解。此外,它是JavaScript的超集。 - The Hungry Dictator
3
@estus,请检查您建议的链接。它没有相关文档。 - user6448704
1
由于事物的变化,评论中的链接不能永久有效。它目前在 Angular 2 文档中。https://v2.angular.io/docs/ts/latest/cookbook/ts-to-js.html - Estus Flask
3个回答

6

或者我应该采用TypeScript?

是的。

实际上,你会发现几乎没有任何关于Angular的代码示例、Gist、教程或博客文章是不使用TypeScript的。因为95%或者更多的Angular用户都在使用TypeScript。这是因为它带来了很多好处,而且缺点很少。你应该重新审视一下自己不喜欢使用TypeScript的原因。是的,有一个学习曲线,但这也是对你未来的投资,从第一天开始就会以提高生产力和代码质量的形式回报。

唯一真正令人信服的试图从JavaScript中使用Angular的原因是,如果你想要从非Angular应用程序中使用某些Angular功能,例如DI。


2
可以使用ES5、ES6或ES.next(通过Babel转换)开发应用程序。它们与TypeScript的区别在于DI和模块化的实现方式。这个示例展示了如何实现。而Angular 2文档中的这份文档则解释了它们之间的差异。
目前,在Angular开发中,JavaScript被视为二等公民。
几乎所有的学习资源都使用TypeScript,如果开发者知道如何将这些代码转换为JavaScript,那么这并不是问题;该转换包括移除类型和重构DI注解。如果开发者不使用Babel进行转换,则应注意TypeScript支持但目标浏览器不支持的现代JS特性。
问题在于,官方的Angular CLI工具和Ahead-of-Time编译不支持JavaScript。这严重限制了在生产中使用Angular JavaScript应用程序的可能性。

1

我在这里添加另一个答案,提供一些真正的技术要点。

使用JavaScript而不是TypeScript运行某些内容是可能的。但是,你将面临两个主要问题,这意味着你不应该这样做:

  1. 你需要进行大量配置。这里有一篇很好的文章解释了如何做到这一点,但你必须进行一些更改才能让它与最新版本的babel和webpack一起工作,这并不容易。

  2. 你永远无法将生产捆绑包缩小到合理的大小。这是因为你不会使用angular-cli来进行构建,而是纯粹使用webpack。angular-cli似乎会使用webpack和typescript编译器进行一些智能构建,以输出更小的生产捆绑包。 仅出于这个原因,这是一个非启动项。我设法获得的hello world应用程序的最小捆绑包超过800kB。使用typescript构建的等效应用程序约为140kB

我认为,Angular团队应该更新他们的文档,指出这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接