TypeScript 是 JavaScript 的一个超集,本文让我们来学习它。
一、初识 TypeScript
-
JavaScript:一种脚本语言,用于创建动态网页;动态弱类型语言;只能在运行时发现错误,变量可以被赋值成不同类型。
-
TypeScript:JavaScript 的超集,用于解决大型项目的代码复杂性;强类型,支持静态和动态类型;可以在编译期间发现并纠正错误;不允许改变变量的数据类型。
TS基础
基础类型:
-
任意类型 any :声明为 any 的变量可以赋予任意类型的值。
-
数字类型 number :双精度 64 位浮点值。它可以用来表示整数和分数。
-
字符串类型 string :一个字符系列,使用单引号(’)或双引号(")来表示字符串类型。反引号来定义多行文本和内嵌表达式。
-
布尔类型 boolean :表示逻辑值:true 和 false。
-
数组类型 :声明变量为数组。
-
元组类型:用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。
-
枚举类型 enum:枚举类型用于定义数值集合。
-
null :表示对象缺失。
-
undefined :初始化变量为一个未定义的值。
-
void :用于标识方法返回值的类型,表示该方法没有返回值。
-
never :其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。
函数类型
1. 函数的三种声明方式:
- 使用 function 关键字进行声明:
function add(a: number, b: number): number {
return a + b }
- 通过函数表达式进行声明:
let add = function (a: number, b: number): number {
return a + b }
- 使用箭头函数声明:
let add = (a: number, b: number): number => {
return a + b}
注意:①函数参数需要给明类型;②函数返回值也需要给出类型。
2. 函数参数:
-
可选参数:可选参数使用
?标记,需要放到固定参数的后面。 -
参数默认值:在参数的类型后面使用
=声明。 -
剩余参数:是 ES6 中的一个特性,使用剩余运算符
...来获取函数实参中未被形参声明的变量,其取得的值是一个数组。剩余参数也要有类型声明,需要将其声明为数组类型或者元组类型。 -
返回值类型: void 类型,表示空类型,用作函数的返回值类型。
3. 函数重载:
在 TypeScript 中,函数重载是指通过为同一个函数提供多个不同的签名 (参数类型和数量),以便根据实际传入的参数类型和数量,在编译时选择正确的函数声明进行调用。
通过函数重载,我们可以定义一组函数声明,每个声明都描述了函数的参数和返回类型。当我们调用函数时,TypeScript 编译器会根据实际传入的参数类型和数量,选择最匹配的函数重载进行调用。
TS中的类
1. 类的定义
语法
class ClassName {
// 类的属性
propertyName: type;
// 构造函数
constructor() {
// 构造函数的实现
}
// 类的方法
methodName() {
// 方法的实现
}
}
2. 类的实例化
使用 new 关键字来创建类的实例。
let obj = new ClassName();
obj.methodName();
3. 类的属性
在 TypeScript 中,类的属性可以被定义为类的成员变量,并且可以赋予类型、访问修饰符和默认值等元素。
-
类的成员变量的类型:类的成员变量可以被定义为一个类型,这个类型可以是基本类型、自定义类型或其他复杂类型。
-
默认值:在 TypeScript 中,类的属性可以设置默认值,如果没有手动赋值则会使用默认值。
-
只读属性:在 TypeScript 中,类包含属性和方法,属性可以分为可读写和只读两种。只读属性指的是对象创建后不允许修改的属性,类中只读属性声明时需要使用关键字" readonly "。
TS中的访问修饰符
1. public
public 是默认的访问修改符,表示成员对所有代码可见。
2. private
TypeScript 中的 private 关键字用于指定类中的成员或方法只能在该类内部进行访问和修改,即在类的 外部范围内是不可见的。
3. protected
protected 与 private 类似,也表示只有在类中和子类中可见的成员。