使用ES5 JavaScript for Angular 2应用程序和使用TypeScript的优缺点是什么?

Elo*_*fin 9 javascript typescript angular

我和Angular 1合作多年了,我开始学习如何使用Angular 2.

但在编写任何代码行之前,我很难确定是否必须使用TypeScript或JavaScript.

  • 使用TypeScript有什么优缺点?
  • 那些使用普通旧JavaScript的是什么?

奖金问题:

  • 在Angular 2上下文中选择JavaScript和TypeScript是否有最佳实践?

我不知道TypeScript,但从我见过的几段代码中看来,主要功能似乎是:

  • 类型提示

  • 隐藏在最常用的Class语法下的原型机制.

浏览网页后我的第一印象:

类型提示:

我喜欢类型提示,但我认为使用一种新语言来增加这个功能有点过分,并且会为开发人员使用松散类型的库产生更多的工作(从文档中,有一些方法可以做到这一点).

基于类的styntax:

新的类语法(接近ES6)怎么样?原型是JavaScript中最容易被误解的功能,但我认为了解它的工作原理(知道你真正做的事情)比简单地把它放在一边更为重要.

ES5是一种基于Prototype的编程语言,那么为什么要使用基于类的伪编程语言,最终会产生原型?这对我来说似乎很奇怪.

代码生成:

最后一点是关于代码生成器.我已经在其他上下文中使用过代码生成器,我真的不喜欢它:在大多数情况下,人类会产生更好的编写代码(我已经看过生成的js:匿名函数,匿名函数无处不在! )并且更简洁(当在浏览器中加载生成的js文件时,大小对于减少加载很重要)

总结:

例如,我并不是真的相信学习TypeScript而不是坚持使用ES5 JavaScript.所以我想从社区获得反馈,以了解使用TypeScript的优势.

Bas*_*ijk 6

我认为Typescript的优点是对Javascript的转换.当Javascript中有新功能时,如果我的Typescript没有改变,则转换器能够创建更好的Javascript.

我也喜欢的Typescript是类型检查本身.它已经让我免于编码错误只是因为类型不匹配,类型数组也帮助我构造如下:

let members: array<People>.

它迫使其他编码人员提供正确的对象类型.

人们也可以认为本机Javascript是要走的路,因为它删除了转换过程并且是原生的.

来自Angular快速入门:

打字稿

import {Component} from 'angular2/core';

@Component({
    selector: 'my-app',
    template: '<h1>My First Angular 2 App</h1>'
})
export class AppComponent { }
Run Code Online (Sandbox Code Playgroud)

使用Javascript

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 = {}));
Run Code Online (Sandbox Code Playgroud)

如上例所示,我更喜欢Typescript,因为我的代码看起来更干净,因此更容易理解.


Lan*_*ley 4

这个问题没有正确答案。然而,过去一个月我被要求从事 Angular2 的工作,并且我一直在对其进行一些研究和开发。所以也许有些要点可以帮助你:

  • 代码提示在 IDE 中仍然不成熟,因为 ts 仍然是新的并且仍在变化。

  • 我同意他们应该专注于原型,这是 JS 的优势和方向,如果他们想要 OOP,他们应该使用 OOP 语言,但我能说什么,任何关于它的讨论都不会改变任何事情。

  • 我一直在使用 TS 来研究它,我可以告诉你,与 js 相比,这个东西更具可读性,需要更多的设置,但说实话,只有一件事对你来说应该重要,这就是我选择 TS 的原因方式:

几乎没有关于 Angular 2 的文档,甚至连官方 API 都还没有完全编写好,你会在这里找到一些小片段,要么是过时的 alpha 语法不再工作,要么是用 TS 编写的。我什至不得不浏览 src 代码来了解我应该如何调用某些东西,因为缺乏相关文档。因此,如果您现在就开始,我强烈建议您走这条路。为了让你知道自己要进入什么,请查看 Angular.io 页面并查看开发人员指南,其中有 4 个部分是用 JS 编写的,15 个部分是用 TS 编写的,很明显他们会推动 TS。

“在 Angular 2 上下文中是否有在 JavaScript 和 TypeScript 之间进行选择的最佳实践?”

不,这是一个偏好问题,您的项目有多大,您想要代码中有多少结构,您希望以更多的开发时间为代价来发现缺陷的容易程度,等等......