TypeScript 必学的基础概念清单


1️⃣ 基础类型

  • numberstringboolean
  • nullundefined
  • any:万金油类型,随便放啥都行
  • unknown:比 any 安全,先检查类型才能用
  • void:通常用于函数没有返回值
  • never:永远不会返回,用于抛错或无限循环
  • 元组(tuple):固定长度、固定类型数组
let point: [number, number] = [10, 20];
  • 数组
let arr: number[] = [1, 2, 3];

2️⃣ 函数类型

  • 参数类型和返回类型
function add(a: number, b: number): number {
  return a + b;
}
  • 可选参数 & 默认参数
function greet(name?: string) { ... }
function greet(name = "Logan") { ... }
  • 剩余参数
function sum(...nums: number[]) { ... }

3️⃣ 对象类型

  • 接口(interface)
interface Person {
  name: string;
  age: number;
}
  • 类型别名(type)
type Point = { x: number, y: number };
  • 可选属性 & 只读属性
interface Person {
  readonly id: number;
  name?: string;
}

4️⃣ 枚举(enum)

给固定值起名字。


5️⃣ 泛型(generics)

之前讲过:类型参数化,灵活又安全。


6️⃣ 联合类型 & 交叉类型

  • 联合类型:一个值可以是多种类型
let value: string | number;
  • 交叉类型:组合多个类型
type A = { name: string };
type B = { age: number };
type C = A & B; // { name: string, age: number }

7️⃣ 类型保护 & 类型断言

  • 类型保护:根据条件判断类型
if (typeof value === "string") { ... }
  • 类型断言:告诉 TS 我知道这个类型
let someValue: any = "hello";
let strLength = (someValue as string).length;

8️⃣ 类与继承

class Animal {
  constructor(public name: string) {}
  move() { console.log(`${this.name} is moving`) }
}

class Dog extends Animal {
  bark() { console.log("Woof!") }
}
  • 可以加 publicprivateprotected 修饰符
  • 支持接口实现 implements

9️⃣ 模块化

  • exportimport,TS 支持 ES 模块,方便拆分代码

🔟 高级类型(可选,进阶)

  • 条件类型T extends U ? X : Y
  • 映射类型:把类型映射成另一个类型
  • 索引类型keyoftypeof

💡 小结
学习顺序可以这样:
基础类型 → 函数/对象 → 枚举/泛型 → 联合/交叉 → 类 → 模块 → 高级类型


JavaScript 的高级部分内容

TypeScript中枚举的概念

评 论
请登录后再评论