这是我参与「第五届青训营 」笔记创作活动的第1天。
TS的简介
TS是JS的超集,是以JS为基础构造的语言,可以在任何支持JS的平台下执行,TS扩展了JS,并添加了类型这一概念,但TS不能被JS解析器直接执行,要先将它编译成JS才能被JS解析器执行。谷歌也在大力支持 Typescript 的推广,谷歌的 angular2.x+ 就是基于 Typescript 语法,最新的 Vue 、React 也可以集成 TypeScript。
TS中的类型
TS的类型的声明
- 可以为一个变量声明一个类型,之后也只能是这个类型。
- 如果变量的声明和赋值是同时进行的,JS可以对变量自动进行类型检测。
TS的不同类型
- 字面量:
var a: 10,赋值一次就不能再改变值了。 - any:
let d:any,可以任意赋值,相当于关闭了TS的类型检测,它可以赋值给任意变量。 - unknow:表示未知类型的值,可以任意赋值,赋值给别的类型会提示。
- void:用来表示空,表示函数没有返回值。
- never: 表示永远不会有返回结果(比如报错)。
- object: 对象类型,
let a: object。 - tuple: 元组,相当于固定长度的数组,存储效率会好一点。
- enum:枚举,尽量用自然语言中含义清楚的单词来表示它的一个值。
enum Gender {
Male = 0,
Female = 1
}//定义一个枚举
抽象类和抽象方法
抽象类:以abstract开头的类开头的是抽象类,抽象类用于继承,不能用来创建对象。 抽象方法:用abstract开头,没有方法体,继承子类必须重写这个方法。
接口
定义一个类或对象的结构,定义一个类中应该包含什么属性或方法,接口属性不能有实际值,接口中所有方法都是抽象方法。
interface myInterface {
name: String,
age: number,
}