什么是TypeScript

TypeScript 是 JavaScript 的一个超集,主要提供了类型系统和对 ES6 的支持.

TS的优点

  1. 支持ES6规范
  2. 强大的IDE支持

体现在三个特性:1.类型检查, 为变量指定类型;2.语法提示;3.重构

第一个特性叫做类型检测 在Typescript里面是运行为变量指定类型的,比如当你为这个变量指定数字类型的值的时候,IDE会做出类型检查,然后告诉你这里可能会有错误,这个特性会减少你在开发阶段犯错误的几率。

第二个特性是语法提示

在IDE里面去编写TypeScript的代码时,IDE会根据你当前的上下文,把你能用的类、变量、方法和关键字都给你提示出来,你只要直接去选就可以了,这个特性会大大提升你的开发效率

第三个特性是重构

重构是说你可以很方便的去修改你的变量或者方法的名字或者是文件的名字,当你做出这些修改的时候,IDE会帮你自动引用这个变量或者调用这个方法地方的代码自动帮你修改掉,这个特性一个是会提高你的开发效率,另一个是可以很容易的提升你的代码质量

配置文件 tsconfig.json

“files”、“include”、“exclude”: files指定的⽂件总会被包含在内,include指定的可被exclude 排除。

compilerOptions outDir: 输出⽬录。指定的⽬录下的⽂件永远会被编译器排除,除⾮⽤files指定. sourceMap: 编译成js时是否⽣成map⽂件 noImplicitAny: 是否允许隐式any baseUrl: 解析⾮相对模块名的基准⽬录 target: ⽬标代码类型 lib: 编译过程中需要引⼊的库⽂件的列表 strict: true, 启⽤所有严格类型检查选项 jsx: 指定jsx代码的⽣成,三种模式(preserve、react、react-native) types: 需要包含的类型声明⽂件名列表,⼀般不⽤指定

数据类型

基础类型

  1. 元组 Tuple: ⼀个已知元素数量和类型的数组,各元素的类型不必相同
  2. 枚举(enum)
  3. 任意值(any):关闭类型检查
  4. 空值(void):表示没有任何类型,一个函数没有一个返回值
  5. never:永远不存在的值的类型(1.从来不会有返回值的函数 2.总是抛错的函数)

高级类型

  1. 联合类型
  2. 交叉类型
  3. 索引类型(keyof索引类型查询操作符)
  4. 映射类型

泛型(generics)

  1. 指在定义函数、接⼝或类的时候,不预先指定具体的类型,⽽在使⽤的时候再指定类型的⼀种特性(就是在使⽤的时候可以传⼊⼀个类型参数)
    2. 泛型函数、泛型接⼝、泛型类
    4. 泛型约束
    3. 定义泛型时可⼀次定义多个类型参数⼀般⽤T、U、V表示,多个的时候也可
    以更语义化但通常以T作为前缀
    5.常⻅的⼯具泛型: Readonly、Partial