Lesson7:TypeScript快速上手

什么是typescript?

  • TS语言本身也是开源的
  • 来自于一线大厂MicroSoft
  • Anders Hejlsberg领衔开发

TypeScript 是 JavaScript 的一个超集,主要提供了类型系统对 ES6 的支持,它由 Microsoft 开发,代码开源于 GitHub 上。TypeScript中文网站

官网的定义:

TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open source.

翻译成中文即是:

TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript。编译出来的 JavaScript 可以运行在任何浏览器上。TypeScript 编译工具可以运行在任何服务器和任何系统上。TypeScript 是开源的。

TypeScript的优势

TypeScript 增加了代码的可读性和可维护性
  • 类型系统实际上是最好的文档,大部分的函数看看类型的定义就可以知道如何使用了
  • 可以在编译阶段就发现大部分错误,这总比在运行时候出错好
  • 增强了编辑器和 IDE 的功能,包括代码补全、接口提示、跳转到定义、重构等
TypeScript 非常包容
  • TypeScript 是 JavaScript 的超集,.js文件可以直接重命名为 .ts即可
  • 即使不显式的定义类型,也能够自动做出类型推论
  • 可以定义从简单到复杂的一切类型
  • 即使 TypeScript 编译报错,也可以生成 JavaScript 文件
  • 兼容第三方库,即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件供 TypeScript 读取
TypeScript 拥有活跃的社区
  • 大部分第三方库都有提供给 TypeScript 的类型定义文件
  • Google 开发的 Angular2 就是使用 TypeScript 编写的
  • ES6 的一部分特性是借鉴的 TypeScript 的(这条需要来源)
  • TypeScript 拥抱了 ES6 规范,也支持部分 ES7 草案的规范

TypeScript 的缺点

  • 有一定的学习成本,需要理解接口(Interfaces)、泛型(Generics)、类(Classes)、枚举类型(Enums)等前端工程师可能不是很熟悉的东西。而且它的中文资料也不多
  • 短期可能会增加一些开发成本,毕竟要多写一些类型的定义,不过对于一个需要长期维护的项目,TypeScript 能够减少其维护成本(这条需要来源)
  • 集成到构建流程需要一些工作量
  • 可能和一些库结合的不是很完美(这条需要举例)

环境搭建

npm install -g typescript
npm install @types/node --dev-save
mkdir ts-demo
npm init
tsc --init

安装完成之后,就有了 tsc 命令。编译一个 TypeScript 文件很简单:

tsc hello.ts

约定使用 TypeScript 编写的文件以 .ts 为后缀。

上手实例

创建一个Animal类

Animal.ts

export class Animal{
    constructor(){
    }

    public eat():void{
        console.log("动物吃生的东西!");
    }

    public run():void{
        console.log("动物随机到处跑!");
    }
}

创建一个Person类继承Animal类

Person.ts

import {Animal} from "./Animal";

export class Person extends Animal{
   constructor() {
       super();
   }

   public eat():void{
       console.log("人类吃熟的东西!");
   }

   public run():void{
       console.log("人类直立行走!");
   }
}

入口文件main.ts

import {Animal} from "./Animal";
import {Person} from "./Person";

let animal=new Animal();
animal.eat();
animal.run();

let person=new Person();
person.eat();
person.run();

编译后执行main.ts

至少要掌握以下TypeScript特性

  • 继承
  • 接口
  • 装饰器
  • getter和setter

你可能感兴趣的:(Lesson7:TypeScript快速上手)