本文是自己的学习笔记,主要参考资料如下。
- B站《2020最新Angular实战教程》,老陈打码制作,https://www.bilibili.com/video/BV1i741157Fj?p=2。
1、typeScript数据类型
编程语言的数据类型都大同小异,对于typeScript而言,有以下几个特点。
- 变量强类型:当定义变量确定类型之后,不可再改变。比如isDone定义为布尔类型,对该变量赋值为1会报错。
- 指定函数返回类型:可像Java一样指定函数的返回值类型。
function f(): number {}
- 一变量可同时具有多个类型。
let cat: string | number;
- 任意类型
let cat: any;
2、接口
typescript接口的定义方式与Java一样,如下所示
interface Student {
name: string;
age: number;
}
但是typescript的接口还是有些独特的东西。
2.1 继承接口必须完全继承
继承接口必须完全继承不仅不能少,也不能多。比如下面的定义会报错。
let student1: Student = {
name: 'dd',
age: 1,
grade: 100
};
2.2. 定义继承时可以不继承的属性
如果有属性可继承也可以不继承,那就在接口定义时给该属性加上?
。比如下面定义接口,实现这个接口时就可以不管age
属性。
interface Student {
name: string;
age?: number;
}
let student1: Student = {
name: 'aa'
}
2.3. 允许实现类添加额外的属性
允许实现类自由发挥,可以添加其他类型的属性,就在接口定义时加上[propName: string]
。比如下面的定义,就允许实现类添加无限多的string类型的变量。
interface Student {
name: string;
age?: number;
[propName: string]: string;
}
let student1: Student = {
name: 'dd',
aa: 'dd',
dd: '23'
};