我真的想开始学习Angular2,但问题是我不喜欢有打字稿的想法。我想用纯Javascript来做。但似乎没有适当的文件。你有我可以开始的任何推荐链接吗?第二个问题是:是否真的值得用Javascript学习Angular,因为它没有文档吗?或者我应该只使用Typescript?
答案 0 :(得分:5)
或者我应该接受打字稿?
是
实际上,您将找到很少(如果有)代码示例,要点,教程或博客文章,它们不使用TypeScript来描述Angular。
原因是95%,或者可能更像99.9%的Angular用户正在使用TypeScript。这是因为它带来很多好处,但缺点很少。您应该重新检查不喜欢使用TypeScript的原因。是的,这是一个学习曲线,但它也是对未来的投资,从第一天开始就以提高生产力和代码质量的形式开始分红。
尝试从JavaScript使用Angular的唯一真正令人信服的理由是,如果您想从非Angular应用程序中使用Angular的一些功能子集,例如DI,那么
答案 1 :(得分:1)
可以使用ES5,ES6或ES.next开发应用程序(使用Babel进行编译)。它们与TypeScript的区别在于如何实现DI和模块化。 This example显示了它是如何完成的。 Angular 2文档中的this document解释了这些差异。
目前,JavaScript在Angular开发中被视为二等公民。
几乎所有学习资源都使用TypeScript,如果开发人员知道此代码如何转换为JavaScript,这不是问题。转换涉及删除类型和重构DI注释。如果开发人员不使用Babel进行转换,他/她应该了解TypeScript支持的现代JS功能,而不是目标浏览器。
问题在于官方Angular CLI工具和Ahead-of-Time编译不支持JavaScript。这严重限制了Angular JavaScript应用程序在生产中的使用。
答案 2 :(得分:0)
我在这里添加一些实际技术要点的答案。
可以使用JavaScript而不是TypeScript来运行某些程序。但是您将遇到两个主要问题,这意味着您不应该这样做:
您将需要做很多配置。 Here is a good article explaining how it can be done,但您必须进行一些更改才能使其与最新版本的babel和webpack配合使用,这并不简单。
您将永远无法把生产包缩减到合理的大小。这是因为您将不会使用angular-cli进行构建,而是将使用纯webpack。 angular-cli似乎可以使用webpack和typescript编译器进行智能构建,以输出更小的生产捆绑包。 仅出于这个原因,这不是一个开始。我为Hello World应用程序设法获得的最小捆绑包已超过800kB
。使用打字稿构建的等效应用程序约为140kB
。
我觉得专职团队应该更新他们的文档以指出这一点。