首页/1

1章:从零开始:搭建我们的博客项目

初始化Next.js项目,认识TypeScript

30分钟
4个学习目标

学习目标

  • 1理解TypeScript是什么,为什么值得学
  • 2搭建开发环境
  • 3创建我们的博客项目
  • 4编写第一行TypeScript代码

欢迎!让我们开始吧

嗨,欢迎来到第一章!

在这个教程里,我们不会枯燥地学完所有TypeScript语法再做项目。相反,我们会直接动手——从零开始搭建一个博客系统,在实战中学习每一个知识点。

为什么是博客?

博客是一个完美的学习项目:

  • 功能明确:文章的增删改查
  • 涉及面广:类型定义、组件开发、API设计、数据库操作
  • 可以扩展:评论、标签、搜索、用户系统
  • 真实有用:完成后你可以真正使用它

为什么是TypeScript?

你可能听说过TypeScript,也可能犹豫过要不要学。让我告诉你:2025年,TypeScript已经是前端开发的标配了

更重要的是,TypeScript正在成为AI Agent开发的首选语言

  • Vercel AI SDK:最流行的AI应用框架,完全用TypeScript
  • LangChain.js:构建AI Agent的核心库
  • Claude Code:Anthropic的AI编程工具
  • Cursor、Windsurf:主流AI编程IDE

如果你想进入AI领域,TypeScript是必须掌握的技能。

TypeScript是什么?

简单来说,TypeScript就是带类型的JavaScript

如果你学过JavaScript,你会发现TypeScript几乎一样——只是多了类型注解。如果你没学过JavaScript也没关系,我们会从头开始。

一个例子:

在JavaScript中,你可以这样写:

function add(a, b) {
  return a + b;
}

这看起来没问题,但如果有人这样调用:

add("1", 2)  // 结果是 "12",不是 3!

JavaScript不会报错,但结果可能不是你想要的。

在TypeScript中:

function add(a: number, b: number): number {
  return a + b;
}

add("1", 2)  // 编译时报错!类型"string"不能赋值给"number"

TypeScript会在编译时就发现这个错误,而不是等到运行时。这就是类型安全的价值。

TypeScript vs JavaScript

typescript
加载中...

为什么要用TypeScript?

为什么要用TypeScript?

你可能会问:JavaScript用得好好的,为什么要学TypeScript?

1. 更早发现错误 JavaScript的错误往往在用户使用时才发现,TypeScript在你写代码时就能发现。

2. 更好的开发体验 IDE能提供准确的自动补全、类型提示,写代码更快。

3. 代码更易维护 类型注解就像代码的文档,看一眼就知道这个变量是什么、函数返回什么。

4. 行业趋势 React、Vue、Next.js都全面支持TypeScript,大厂招聘基本都要求会TS。

5. AI Agent开发 Vercel AI SDK、LangChain.js等AI框架都用TypeScript,想做AI开发必须会TS。

搭建开发环境

好了,理论讲够了,让我们开始动手吧!

我们需要安装:

  1. Node.js - JavaScript运行环境

    • 访问 https://nodejs.org
    • 下载LTS(长期支持)版本
    • 安装时选择默认选项即可
  2. VS Code - 代码编辑器(推荐)

    • 访问 https://code.visualstudio.com
    • 下载并安装
    • 它对TypeScript有完美的支持
  3. TypeScript编译器 - 把TS代码转成JS

    • 安装完Node.js后,打开终端
    • 运行下面的命令

验证安装:

安装完成后,在终端中运行以下命令验证:

安装和验证

bash
加载中...

创建博客项目

环境准备好了,让我们创建博客项目!

我们将使用Next.js框架,它是目前最流行的React框架,支持:

  • 服务端渲染(SEO友好)
  • API路由(前后端一体)
  • TypeScript支持
  • 简单的部署方式

创建项目的命令:

运行下面的命令,它会自动创建一个Next.js项目:

创建Next.js项目

bash
加载中...

项目结构

创建完成后,你会看到这样的目录结构:

my-blog/
├── app/              # 页面和布局
│   ├── layout.tsx    # 根布局
│   ├── page.tsx      # 首页
│   └── globals.css   # 全局样式
├── public/           # 静态资源
├── next.config.js    # Next.js配置
├── tsconfig.json     # TypeScript配置
└── package.json      # 项目配置

重要文件说明:

  • app/page.tsx - 这是首页,我们的博客主页
  • app/layout.tsx - 这是布局,所有页面共享的部分
  • tsconfig.json - TypeScript配置,暂时不用改

现在,让我们打开 app/page.tsx,把里面的内容替换成我们的博客首页代码。

第一个TypeScript文件

typescript
加载中...

代码解析

让我们看看这段代码做了什么:

1. 类型定义

interface Post {
  id: number;
  title: string;
  content: string;
  createdAt: Date;
}

这里我们定义了Post接口,描述了文章应该有哪些属性。TypeScript会确保我们的文章对象符合这个结构。

2. 数据

const posts: Post[] = [...]

我们创建了一些模拟数据。注意: Post[]表示这是一个Post类型的数组。

3. 组件

export default function Home() {
  return (...)
}

这是一个React组件,返回JSX(看起来像HTML的语法)。

运行看看:

保存文件后,浏览器会自动刷新,你应该能看到一个简单的博客首页!

常见问题

常见问题

Q: 命令找不到? 确保Node.js已正确安装,重新打开终端试试。

Q: 启动报错? 检查是否在正确的目录下运行命令。

Q: 页面没有更新? 确保开发服务器正在运行(终端应该显示 "Ready in xxx ms")。

Q: 类型报错? 这正是TypeScript的价值!仔细看错误信息,它会告诉你哪里有问题。

恭喜!你已经迈出了第一步

太棒了!你已经成功:

  1. ✅ 搭建了开发环境
  2. ✅ 创建了博客项目
  3. ✅ 编写了第一行TypeScript代码
  4. ✅ 看到了TypeScript类型系统的威力

下一章预告:

在下一章中,我们会为博客添加更多的类型定义——文章状态、用户信息、标签系统。你会学到:

  • 基础类型(string、number、boolean等)
  • 数组和元组
  • 类型推断
  • 联合类型

让我们继续吧!

交互式练习

1 / 1

你的第一个TypeScript

为博客文章定义一个类型,并创建一篇文章

typescript
Loading...

章节测验

问题 1 / 3得分: 0 / 3

TypeScript是什么的超集?

A
Java
B
Python
C
JavaScript
D
C++