将ES5 JavaScript用于Angular 2应用程序以及使用TypeScript的优缺点是什么?
What are the pros and cons using ES5 JavaScript for Angular 2 applications and those for using TypeScript?
1 已经很多年了,我开始学习如何使用 Angular 2。
但是在编写任何代码行之前,我很难确定我是否必须使用TypeScript或JavaScript。
- 使用TypeScript的优缺点是什么?
- 使用普通的旧JavaScript有哪些?
奖金问题 :
- 在 Angular 2 上下文中,是否有在 JavaScript 和 TypeScript 之间进行选择的最佳实践?
我不知道TypeScript,但从我看到的几段代码来看,似乎主要功能是:
类型提示
隐藏在最常用的类语法下的原型机制。
浏览网页后的第一印象:
类型提示:
我喜欢类型提示,但我认为使用新语言只是为了添加此功能有点矫枉过正,并且会为开发人员使用松散类型的库产生更多工作(从文档中,有一些方法可以做到这一点)。
基于类的 styntax :
新的类语法(接近ES6)呢?原型是JavaScript最容易被误解的特性,但我认为理解它是如何工作的(知道你真正在做什么)比简单地把它放在一边更重要。
ES5是一种基于原型的编程语言,那么为什么要使用伪的基于类的编程语言,它最终会产生原型?这对我来说似乎很奇怪。
代码生成:
最后一点是关于代码生成器。我已经在其他上下文中使用了代码生成器,但我真的不喜欢它:在大多数情况下,人类会生成更好的书面代码(我已经查看了生成的 js:匿名函数,无处不在的匿名函数!)和更简洁(当涉及到在浏览器中加载生成的 js 文件时,大小对于减少加载很重要)
总结:
例如,我真的不相信学习TypeScript而不是坚持ES5 JavaScript的兴趣。所以我希望得到社区的反馈,以了解使用 TypeScript 的优势。
我认为Typescript的优点是可以转译到Javascript。当Javascript中有新功能时,转译器能够创建更好的Javascript,而我的Typescript没有改变。
我也喜欢 Typescript 的是类型检查本身。它已经使我免于编码错误,仅仅是因为类型不匹配,类型化数组也帮助我构建如下:
let members: array<People>
.
它强制其他编码人员提供正确的对象类型。
有人也可以说原生Javascript是要走的路,因为它删除了转译过程并且是原生的。
从角度快速入门:
打字稿
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
template: '<h1>My First Angular 2 App</h1>'
})
export class AppComponent { }
爪哇语
function(app) {
app.AppComponent =
ng.core.Component({
selector: 'my-app',
template: '<h1>My First Angular 2 App</h1>'
})
.Class({
constructor: function() {}
});
})(window.app || (window.app = {}));
如上例所示,我更喜欢 Typescript,因为我的代码看起来更干净,因此更容易理解。
这个问题没有正确的答案。然而,在过去的一个月里,我被要求在Angular2上工作,我一直在做一些研究和开发。所以也许有几点可以帮助你:
-
代码提示在 IDE 中仍然不成熟,因为 ts 仍然是新的,并且仍在变化。
-
我同意他们应该专注于原型,这是JS的优势和方向,如果他们想要OOP,他们应该使用OOP语言,但我能说什么,关于它的争论不会改变任何事情。
-
我一直在使用 TS 进行研究,我可以告诉你,与 js 相比,它更具可读性,需要更多时间来设置,但是 tbh 只有一件事对您很重要,它为什么我选择了 TS 方式:
几乎没有关于 Angular 2 的文档,甚至官方 API 还没有完全编写,你会在这里找到的一点点,要么是 alpha 语法过时了,不再起作用,要么是用 TS 编写的。我什至不得不浏览 src 代码来了解由于缺乏文档而应该如何调用某些东西。所以如果你现在开始,我强烈建议你走这条路。只是为了让您知道自己正在进入什么,请查看 Angular.io 页面并查看开发人员指南,其中 4 个部分是用 JS 编写的,15 个部分是用 TS 编写的,很明显他们会推动 TS。
"在 Angular 2 上下文中,是否有在 JavaScript 和 TypeScript 之间进行选择的最佳实践?"
不,这是一个偏好问题,你的项目有多大,你想要在你的代码中有多少结构,你想以更多的时间开发为代价来发现缺陷的容易程度,等等......
- Foreach无法在Typescript中工作
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- 为什么无法在TypeScript中导出类实例
- 如何将TypeScript对象转换为普通对象
- Angular 2.0 with JavaScript or TypeScript?
- "实例范围”;TypeScript类的getter/setter
- 如何在大型nodeJS代码的基础上逐步引入typescript
- 从HTML调用typescript文件中的函数
- 如何将js库与typescript一起使用
- 理解typescript中的构造函数接口
- 在gump和nodejs中使用Typescript时,未定义对require和exports的引用
- Typescript导入导出的类会发出require(..),从而导致浏览器错误
- 为其他JS生成定义“;编译器”;来自TypeScript定义文件
- Typescript angularjs$http获取响应类型(避免使用<any>)
- Typescript编译器错误,Angular 1.5组件应为分号
- 应该如何在typescript中键入lodash流函数
- 将JSON转换为typescript中的字符串数组
- 用于在Visual Studio中预览基于我的TypeScript的JavaScript的工具
- 我可以将函数导入到typescript类文件中吗
- 将ES5 JavaScript用于Angular 2应用程序以及使用TypeScript的优缺点是什么?