TypeScript 看见未来的 JavaScript

in #typescript7 years ago

TypeScript也可以看作是“更好的JavaScript”,TypeScript充分利用了JavaScript原有的对象模型并在此基础上做了扩充,添加了较为严格的类型检查机制,添加了模块支持和API导出的能力。比起JavaScript,TypeScript提供了更多在语言层面上的支持,使得程序员能够以更加标准化的语法来表达语义上的约束,从而降低了程序出错的机率;TypeScript也使得代码组织和复用变得更加有序,使得开发大型Web应用有了一套标准方法。

下面是完成同样功能的两段简单代码。

TypeScript Code:

class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}  

JavaScript Code:

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

在JavaScript中没有类,只有对象,要实现所谓的“类式操作”(classical operations),如封装、多态等,要通过若干基础设施,如原型、构造函数等来完成。这些对于非常熟悉JavaScript的程序员来说,也许都是可以完成的任务,但对于新手来说就困难重重了。并且,即使是高手,一段时间不写相关的代码也很容易遗忘和出错。但TypeScript却提供了标准的机制,将普通程序员熟悉的、C++和C#中常用的类概念映射到JavaScript中去,这样就大大降低了在JavaScript进行类式操作的难度。

严格ES6(ECMAScript 2015)开始支持类了,但TypeScript现在就可以运行在任何浏览器上、Node.js环境中和任何支持ECMAScript 3(或更高版本)的JavaScript引擎中。所以说TypeScript是JavaScript的未来,是更好的JavaScript

为什么要学习 TypeScript ,实际上 JavaScript 已经够用了,而且像我没学过 TypeScript 也照样开发得很好,我们来看看它的优势:

  • 更多的规则和类型限制,让代码预测性更高、可控性更高,易于维护和调试。
  • 对模块、命名空间和面向对象的支持,更容易组织代码开发大型复杂程序。
  • TypeScript 的编译步骤可以捕获运行之前的错误。
  • Angular 2+ 和 Ionic 2+默认使用 TypeScript(虽然我不会,我也在用。)、

TypeScript 是微软开发和控制的开源项目,我在应用 Anguar 2 + Ionic 2 + 框架开发系统时使用的就是 TypeScript,但我一直把 TypeScript 当作 JavaScript 来用的,甚至是照猫画虎,所以我想正儿八经的学习下 TypeScript,弄明白我糊里糊涂使用的东西,这篇 Chat分享算是我的一个学习笔记,如果你想和我一样,想知道以下内容,请来我的 Chat:

为什么要学习 TypeScript
TypeScript 的类型有什么不同和用处
使用 Webpack 搭建学习环境
深入了解 TypeScript 中的类型

如果你想了解以上类容,欢迎加入TypeScript 快速入门 的Chat

TypeScript快速入门
如何用Python爬取网页制作电子书

原文地址

Sort:  

TypeScript看上去是C#程序员搞出来的,很明显的后端思维方式。

就是C#的作者写的,不过那些东西在后面的ES标准中也有了,说明是个趋势,研究这个主要是因为用Angular,Angular默认是TS。