程序员面试宝典

一站式面试准备平台

返回分类
typescript中级

TypeScript基础入门

TypeScript类型系统的基础知识和核心概念

2026-03-16
阅读时间: 4分钟

TypeScript基础入门

TypeScript是JavaScript的超集,添加了静态类型系统,使得大型应用开发更加可靠。

1. 基本类型

TypeScript提供了多种基本类型:

typescript
// 基本类型
let name: string = "TypeScript";
let version: number = 5.3;
let isAwesome: boolean = true;

// 数组
let numbers: number[] = [1, 2, 3];
let strings: Array<string> = ["a", "b", "c"];

// 元组
let tuple: [string, number] = ["hello", 42];

// 枚举
enum Color {
  Red,
  Green,
  Blue
}
let color: Color = Color.Red;

2. 接口和类型别名

接口

typescript
interface User {
  id: number;
  name: string;
  email?: string; // 可选属性
  readonly createdAt: Date; // 只读属性
}

const user: User = {
  id: 1,
  name: "Alice",
  createdAt: new Date()
};

类型别名

typescript
type Point = {
  x: number;
  y: number;
};

type ID = number | string;

3. 泛型

泛型提供了类型安全的代码重用:

typescript
// 泛型函数
function identity<T>(arg: T): T {
  return arg;
}

// 泛型接口
interface Container<T> {
  value: T;
}

// 泛型类
class Stack<T> {
  private items: T[] = [];
  
  push(item: T): void {
    this.items.push(item);
  }
  
  pop(): T | undefined {
    return this.items.pop();
  }
}

4. 类型系统对比

特性JavaScriptTypeScript
类型检查动态类型(运行时)静态类型(编译时)
类型注解不支持支持
接口不支持支持
泛型不支持支持
编译不需要需要
错误检测运行时编译时

5. 高级类型

联合类型

typescript
type Status = "success" | "error" | "loading";

function handleStatus(status: Status): void {
  console.log(`Status: ${status}`);
}

交叉类型

typescript
interface Named {
  name: string;
}

interface Aged {
  age: number;
}

type Person = Named & Aged;

const person: Person = {
  name: "Bob",
  age: 30
};

最佳实践

  1. 启用严格模式:在tsconfig.json中设置strict: true
  2. 使用明确的类型:避免使用any类型
  3. 利用类型推断:让TypeScript自动推断类型
  4. 编写类型定义文件:为第三方库提供类型支持
  5. 定期更新TypeScript:使用最新版本以获得新特性

TypeScript的类型系统大大提高了代码的可靠性和可维护性,是现代JavaScript开发的必备工具

相关标签