其实TypeScript 是 JavaScript 的超集。并且类型系统是可选的,如果省略掉,那么就是 JavaScript。

ts的优势

TypeScript是微软开发的一个开源的编程语言。可以通过Babel转译为JavaScript代码,这样就能运行在任何浏览器,任何操作系统。

  1. TypeScript 增加了代码的可读性和可维护性。
  • 类型系统实际上是最好的文档,通过类型的定义就知道变量的内容格式。
  • 编译阶段会检查错误,减少运行报错。
  • 增强了代码补全,接口提示,跳转到定义,重构等。
  1. TypeScript 兼容性好
  • Typescript是带类型的javascript的超集,完全兼容js语法。
  • 不显示的定义类型,也能够自动做出类型推导。
  • 兼容第三方库,即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件供 TypeScript 读取。

类型系统

既然TypeScript是带类型的js,那么学习ts的核心,就是掌握类型系统。

  1. 原始类型:stringnumberboolean
    let num: number;
    let str: string;
    let bool: boolean;
  1. 数组。
    letstrArray: string[];
  1. 接口:interface是 TypeScript 的一个核心知识,它能在一个类型声明中合并众多类型声明。
interface Persion {
    name: string;
    age: number;
}
  1. 内联类型:它与上面的接口不同,可以使用内联注解语法注解任何内容。
let Persion: {
    name: string;
    age: number;
}
  1. 特殊类型。any、 null、 undefined 以及 void

    • any:类型在 TypeScript 类型系统中占有特殊的地位。它提供给你一个类型系统的「后门」,TypeScript 将会把类型检查关闭。
    • null 和 undefined: null 和 undefined 和 any 类型的变量一样,都能被赋值给任意类型的变量。
    • void::void 用来表示没有一个返回值的函数。
  2. 泛型:根据输入确定输出。

function loggingIdentity<T>(arg: T): T { 
    console.log(arg.length); // Error: T doesn't have .length return arg;
}
  1. 联合类型:变量可满足多个类型,将不同类型以and关系连接。
    let union: number | string | boolean;

结束语

typeScript虽然是带类型的javaScript,但投入使用还是需要把类型系统完全掌握。本文只是简单的描述了常用的类型种类。后续还有很多要学习。希望大家一起学会ts。

如果你看到面前的阴影,别怕,那是因为你的背后有阳光。