一、基础类型
1、任意类型any
2、数字类型number
3、字符类型string
4、布尔类型boolean
5、数组类型(无关键字)
定义存储各种类型数据的数组时
6、元组:元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。
7、枚举enum:枚举类型用于定义数值集合。
8、void,用于标识方法返回值的类型,表示该方法没有返回值。
9、null,表示对象值缺失
10、undefined,用于初始化变量为一个未定义的值
11、never,代表不会出现的值。这意味着声明为 never 类型的变量只能被 never 类型所赋值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环)
注意:
在typescript中启用严格的空校验(--strictnullchecks)特性,就可以使得null 和 undefined 只能被赋值给 void 或本身对应的类型
可以用 | 来支持多种类型,比如:
二、变量声明
1、ts的变量命名规则:不能以数字开头,不能包含下划线_和美元符号$之外的特殊字符
2、声明变量方式:
4种方式,没有类型那么类型就是any;没有值,那么值就是undefined。
三、函数
1、函数返回值
2、带参数函数
3、带可选参数和默认参数
在 typescript 函数里,如果我们定义了参数,则我们必须传入这些参数,除非将这些参数设置为可选,可选参数使用问号标识 ?。
将 lastname 设置为可选参数:
注意:可选参数必须跟在必需参数后面。 如果上例我们想让 firstname 是可选的,lastname 必选,那么就要调整它们的位置,把 firstname 放在后面。如果都是可选参数就没关系。
我们也可以设置参数的默认值,这样在调用函数的时候,如果不传入该参数的值,则使用默认参数,语法格式为:
注意:参数不能同时设置为可选和默认。
4、剩余参数
有一种情况,我们不知道要向函数传入多少个参数,这时候我们就可以使用剩余参数来定义。剩余参数语法允许我们将一个不确定数量的参数作为一个数组传入。
函数的最后一个命名参数 restofname 以 ... 为前缀,它将成为一个由剩余参数组成的数组,索引值从0(包括)到 restofname.length(不包括)。
5、函数重载
重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
比如:参数类型不同、参数数量不同、参数类型顺序不同
四、联合类型
联合类型(union types)可以通过管道 ( | ) 将变量设置多种类型,赋值时可以根据设置的类型来赋值。
注意:只能赋值指定的类型,如果赋值其它类型就会报错。
创建联合类型的语法格式如下:type1|type2|type3
五、接口
1、接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。
我们定义了一个接口 iperson,接着定义了一个变量 customer,它的类型是 iperson。
customer 实现了接口 iperson 的属性和方法。
联合类型和接口
2、接口继承
接口继承就是说接口可以通过其他接口来扩展自己。
typescript 允许接口继承多个接口。
继承使用关键字 extends。
单接口继承语法格式:child_interface_name extends super_interface_name
多接口继承语法格式:child_interface_name extends super_interface1_name, super_interface2_name,…,super_interfacen_name
继承的各个接口使用逗号 , 分隔。