最近这两年,有很多人都在讨论 Typescript,无论是社区还是各种文章都能看出来,整体来说正面的信息是大于负面的,这篇文章就来整理一下我所了解的 Typescript。
TypeScript 类型
TypeScript有哪些类型
1、TypeScript 基本类型,也就是可以被直接使用的单一类型。
- 数字
- 字符串
- 布尔类型
- null
- undefined
- any
- unknown
- void
- object
- 枚举
- never
2、复合类型,包含多个单一类型的类型。
- 数组类型
- 元组类型
- 字面量类型
- 接口类型
3、如果一个类型不能满足要求怎么办?
- 可空类型,默认任何类型都可以被赋值成 null 或 undefined。
- 联合类型,不确定类型是哪个,但能提供几种选择,如:type1 | type2。
- 交叉类型,必须满足多个类型的组合,如:
type1 & type2
。
类型都在哪里使用
在变量中使用
在变量中使用时,直接在变量后面加上类型即可。
let a: number;
let b: string;
let c: null;
let d: undefined;
let e: boolean;
let obj: Ixxx = {
a: 1,
b: 2,
};
let fun: Iyyy = () => {};
在接口中使用
在接口中使用也比较简单,可以理解为组合多个单一类型。
interface IData {
name: string;
age: number;
func: (s: string) => void;
}
在函数中使用
在函数中使用类型时,主要用于处理函数参数、函数返回值。
// 函数参数
function a(all: string) {}
// 函数返回值
function a(a: string): string {}
// 可选参数
function a(a: number, b?: number) {}
TypeScript 高级用法
Typescript 中的基本用法非常简单,有 js 基础的同学很快就能上手,接下来我们分析一下 Typescript 中更高级的用法,以完成更精密的类型检查。
类中的高级用法
在类中的高级用法主要有以下几点:
- 继承
- 存储器 get set
- readonly 修饰符
- df公有,私有,受保护的修饰符
- 抽象类 abstract
继承和存储器和 ES6 里的功能是一致的,这里就不多说了,主要说一下类的修饰符和抽象类。
类中的修饰符是体现面向对象封装性的主要手段,类中的属性和方法在被不同修饰符修饰之后,就有了不同权限的划分,例如:
- public 表示在当前类、子类、实例中都能访问。
- protected 表示只能在当前类、子类中访问。
- private 表示只能在当前类访问。
class Animal {
// 公有,私有,受保护的修饰符
protected AnimalName: str