天天看点

TypeScript 基础类型、变量声明、函数、联合类型、接口

一、基础类型

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

  继承的各个接口使用逗号 , 分隔。