TypeScript | 青训营笔记

54 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第1天。

TS的简介

TS是JS的超集,是以JS为基础构造的语言,可以在任何支持JS的平台下执行,TS扩展了JS,并添加了类型这一概念,但TS不能被JS解析器直接执行,要先将它编译成JS才能被JS解析器执行。谷歌也在大力支持 Typescript 的推广,谷歌的 angular2.x+ 就是基于 Typescript 语法,最新的 Vue 、React 也可以集成 TypeScript。

TS中的类型

TS的类型的声明

  1. 可以为一个变量声明一个类型,之后也只能是这个类型。
  2. 如果变量的声明和赋值是同时进行的,JS可以对变量自动进行类型检测。

TS的不同类型

  1. 字面量:var a: 10,赋值一次就不能再改变值了。
  2. any:let d:any ,可以任意赋值,相当于关闭了TS的类型检测,它可以赋值给任意变量。
  3. unknow:表示未知类型的值,可以任意赋值,赋值给别的类型会提示。
  4. void:用来表示空,表示函数没有返回值。
  5. never: 表示永远不会有返回结果(比如报错)。
  6. object: 对象类型,let a: object
  7. tuple: 元组,相当于固定长度的数组,存储效率会好一点。
  8. enum:枚举,尽量用自然语言中含义清楚的单词来表示它的一个值。
enum Gender {
    Male = 0,
    Female = 1
}//定义一个枚举

抽象类和抽象方法

抽象类:以abstract开头的类开头的是抽象类,抽象类用于继承,不能用来创建对象。 抽象方法:用abstract开头,没有方法体,继承子类必须重写这个方法。

接口

定义一个类或对象的结构,定义一个类中应该包含什么属性或方法,接口属性不能有实际值,接口中所有方法都是抽象方法。

interface myInterface {
    name: String,
    age: number,
}