全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 7 分钟 ✍️ juanwangdev

TypeScript 基础类型与枚举

TypeScript 在 JavaScript 基础上增加了严格的类型系统,下面梳理基础类型与枚举用法。

基础类型

布尔值

TypeScript
let isDone: boolean = false;

数字

TypeScript
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;

字符串

TypeScript
let name: string = "TypeScript";
let greeting: string = `Hello, ${name}`;

数组

两种写法等价:

TypeScript
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];  // 泛型写法

元组(Tuple)

固定长度与类型的数组:

TypeScript
let pair: [string, number] = ["age", 25];
pair[0].toUpperCase();  // ✅
// pair[2] = true;      // ❌ 越界错误

any / unknown / void / never

类型说明使用场景
any关闭类型检查不推荐使用,破坏类型安全
unknown安全版 any不确定类型时需先做类型守卫
void无返回值函数返回值为 undefined
never永不存在的值抛出异常/死循环的函数返回值
TypeScript
let val: any = 42;
val = "string";  // ✅ 任何类型都可赋值给 any

let u: unknown = 42;
// u.toFixed();  // ❌ 需先检查类型
if (typeof u === "number") {
  u.toFixed();  // ✅
}

function log(msg: string): void {
  console.log(msg);
}

function throwError(msg: string): never {
  throw new Error(msg);
}

null 与 undefined

TypeScript
let n: null = null;
let u: undefined = undefined;

// 默认情况下 null 和 undefined 是所有类型的子类型
// strictNullChecks: true 时变为独立类型

object

TypeScript
declare function create(o: object): void;

create({ prop: 0 });   // ✅
create(null);          // ✅
// create(42);         // ❌ 基本类型不行

枚举

数字枚举

TypeScript
enum Direction {
  Up,    // 0
  Down,  // 1
  Left,  // 2
  Right  // 3
}

let d: Direction = Direction.Up;
console.log(Direction[0]);  // "Up"(反向映射)

自定义起始值:

TypeScript
enum Status {
  Active = 1,
  Inactive,  // 2
  Pending    // 3
}

字符串枚举

TypeScript
enum EventType {
  CLICK = "click",
  HOVER = "hover",
  FOCUS = "focus"
}

function handleEvent(type: EventType) {
  console.log(`Event: ${type}`);
}

handleEvent(EventType.CLICK);

常量枚举

使用 const 修饰,编译后内联值,不产生额外代码:

TypeScript
const enum Colors {
  Red = "#FF0000",
  Green = "#00FF00",
  Blue = "#0000FF"
}

let color: string = Colors.Red;  // 编译为:let color = "#FF0000";

注意:常量枚举不能有计算成员,所有成员必须是字面量或引用其他常量枚举成员。

联合类型枚举配合

TypeScript
type Role = "admin" | "user" | "guest";

const role: Role = "admin";

建议:字符串值用联合类型,需要反向映射用数字枚举,需要类型安全用字符串枚举。

要点总结

  • 基础类型包括 string/number/boolean/数组/元组等
  • any 关闭类型检查,unknown 是安全替代方案
  • void 用于无返回值函数,never 用于永不返回的函数
  • 数字枚举自动递增赋值,支持反向映射
  • 字符串枚举无反向映射,但类型更安全
  • const enum 编译时内联,无额外运行时开销

📝 发现内容有误?点击此处直接编辑

← 上一篇 TypeScript 函数类型
下一篇 → TypeScript 类型别名与推断
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库