TypeScript 快速入门:30 分钟上手指南

刘浩宇_云计算
2025-12-17 12:23
阅读 1767

作者:一名从中文系转码成功的前端工程师
写作初衷:我当初自学编程时,被 TypeScript 吓退过三次。今天,我想用最接地气的方式,带你 30 分钟真正“上手”它。


为什么你需要 TypeScript?

如果你听说过 JavaScript,那你一定知道它很灵活——但有时候太灵活了,就像骑一辆没有刹车的自行车。TypeScript(简称 TS)就是给这辆自行车加上刹车、仪表盘和导航系统

简单来说:

  • TypeScript = JavaScript + 类型系统
  • 它能帮你提前发现代码错误,而不是等到用户点按钮时才崩溃
  • 大厂项目(比如 GitHub 前端、VS Code)几乎都用 TS
  • 即使你以后做运营、写爬虫、搞自动化脚本,TS 也能让你的代码更健壮

我当初学的时候,以为 TS 是“高深语言”,其实它只是 JS 的“加强版”。只要你会写 JS,就能学会 TS!


第一步:环境准备(5 分钟搞定)

我们不需要复杂配置!只需三样工具:

工具 作用 安装方式
Node.js 运行 JavaScript/TypeScript 的引擎 官网下载安装://nodejs.org
VS Code 最好用的免费代码编辑器 官网下载://code.visualstudio.com
TypeScript 编译器 把 TS 转成 JS 的工具 终端运行 npm install -g typescript

操作步骤(跟着做就行):

  1. 安装 Node.js
    打开终端(Mac 用 Terminal,Windows 用 PowerShell),输入:

    node -v
    npm -v
    

    如果显示版本号(如 v18.17.0),说明已安装。否则去官网下载 LTS 版。

  2. 全局安装 TypeScript

    npm install -g typescript
    
  3. 验证安装

    tsc -v  # 应该输出类似 Version 5.2.2
    
  4. 创建你的第一个 TS 项目

    mkdir my-first-ts
    cd my-first-ts
    code .  # 用 VS Code 打开当前文件夹
    

✅ 小贴士:如果 code . 命令无效,打开 VS Code → 左下角齿轮图标 → “命令面板” → 输入 “shell command” → 选择 “Install 'code' command in PATH”。


第二步:核心概念(用大白话讲清楚)

1. 什么是“类型”(Type)?

在 JS 中,你可以随便写:

let name = "张三";
name = 123; // 合法!但可能出 bug

但在 TS 中,你可以提前声明变量应该是什么类型

let name: string = "张三";
name = 123; // ❌ 报错!不能把数字赋值给字符串

常见类型就这几个:

类型 示例 说明
string "hello" 文本
number 42, 3.14 数字
boolean true, false 真/假
array [1,2,3]string[] 列表
object {name: "张三"} 对象
any 任意值 不推荐!等于关掉 TS 保护

我当初学的时候,总想用 any 图省事,结果后来调试花了更多时间。记住:越早约束类型,后期越省心

2. 函数也有类型!

JS 函数:

function greet(name) {
  return "Hello " + name;
}

TS 函数(明确参数和返回值类型):

function greet(name: string): string {
  return "Hello " + name;
}

greet("李四"); // ✅
greet(123);    // ❌ 报错!

3. 接口(Interface)——定义对象的“合同”

想象你要开发一个用户系统,每个用户必须有 nameage。你可以用 interface 定义这个“合同”:

interface User {
  name: string;
  age: number;
}

const user1: User = { name: "王五", age: 25 }; // ✅
const user2: User = { name: "赵六" };          // ❌ 缺少 age!

这对团队协作、GitHub 项目维护特别有用——别人一看就知道这个对象该长什么样。


第三步:实战项目——做一个“运营数据小助手”

假设你是运营人员,每天要处理一批用户数据,需要:

  • 验证用户信息是否完整
  • 生成欢迎语
  • 导出为 JSON(方便后续用爬虫或自动化工具处理)

我们就用 TS 写这个小工具!

步骤 1:初始化项目

my-first-ts 文件夹中,创建 index.ts

touch index.ts

步骤 2:定义用户结构

// index.ts
interface User {
  id: number;
  name: string;
  email: string;
  isActive: boolean;
}

步骤 3:写验证函数

function validateUser(user: User): boolean {
  if (!user.name || !user.email) {
    console.log(`❌ 用户 ${user.id} 信息不全`);
    return false;
  }
  return true;
}

步骤 4:生成欢迎语

function generateWelcomeMessage(user: User): string {
  return `亲爱的 ${user.name},欢迎回来!您的邮箱是:${user.email}`;
}

步骤 5:模拟数据并运行

const users: User[] = [
  { id: 1, name: "Alice", email: "alice@example.com", isActive: true },
  { id: 2, name: "", email: "bob@example.com", isActive: false }, // 名字为空
  { id: 3, name: "Charlie", email: "", isActive: true },         // 邮箱为空
];

users.forEach(user => {
  if (validateUser(user)) {
    console.log(generateWelcomeMessage(user));
  }
});

步骤 6:编译并运行

在终端执行:

tsc index.ts      # 生成 index.js
node index.js     # 运行 JS 文件

输出:

❌ 用户 2 信息不全
❌ 用户 3 信息不全
亲爱的 Alice,欢迎回来!您的邮箱是:alice@example.com

🎉 看!TS 帮我们提前发现了两条脏数据。如果这是真实运营场景,你就能避免给用户发错邮件!


第四步:扩展——连接 GitHub & 爬虫场景

虽然 TS 主要用于前端,但它也能用于后端(Node.js)甚至爬虫脚本!

场景 1:从 GitHub API 获取仓库信息

安装 HTTP 请求库:

npm init -y
npm install axios
npm install @types/node @types/axios --save-dev

新建 github.ts

import axios from 'axios';

interface Repo {
  name: string;
  description: string | null;
  stargazers_count: number;
}

async function fetchRepos(username: string): Promise<Repo[]> {
  const url = `https://api.github.com/users/${username}/repos`;
  const response = await axios.get<Repo[]>(url);
  return response.data;
}

// 使用
fetchRepos('microsoft')
  .then(repos => {
    repos.slice(0, 3).forEach(repo => {
      console.log(`⭐️ ${repo.stargazers_count} - ${repo.name}`);
    });
  });

编译运行:

tsc github.ts
node github.js

这里 TS 的类型让我们知道 repo 一定有 stargazers_count 字段,不用猜!

场景 2:写一个简单的“爬虫”脚本

比如抓取某个页面的标题(仅演示,遵守 robots.txt!):

npm install cheerio
npm install @types/cheerio --save-dev
// crawler.ts
import axios from 'axios';
import * as cheerio from 'cheerio';

async function getPageTitle(url: string): Promise<string> {
  const { data } = await axios.get(url);
  const $ = cheerio.load(data);
  return $('title').text().trim();
}

getPageTitle('https://example.com')
  .then(title => console.log('网页标题:', title));

即使你是做运营或数据分析,用 TS 写这类自动化脚本,也能大幅减少“undefined is not a function”这类低级错误。


新手常见问题解答

Q1:TS 和 JS 到底有什么区别?我要重学吗?

不用! TS 是 JS 的超集。所有合法的 JS 代码都是合法的 TS 代码。你可以在现有 JS 项目中逐步添加类型。

Q2:为什么我的 TS 文件报错,但 JS 能运行?

因为 TS 在编译阶段就检查错误,而 JS 要到运行时才报错。TS 的目标是“提前发现问题”。

Q3:any 类型是不是万能的?

技术上是,但强烈不建议。用了 any 就等于放弃 TS 的最大优势。尽量用具体类型,实在不确定可以用 unknown

Q4:如何在已有 JS 项目中引入 TS?

  1. .js 改成 .ts
  2. 逐步添加类型注解
  3. 配置 tsconfig.json(稍复杂,初学者可先跳过)

学习建议 & 下一步路线

避坑指南(血泪经验!)

  • ❌ 不要一上来就看官方文档(太枯燥)
  • ✅ 先写 JS,再逐步加类型
  • ✅ 遇到报错别慌,90% 是类型不匹配,看红字提示就行
  • ✅ 用 VS Code!它会实时标红错误,比命令行友好得多

推荐学习路径

  1. 基础:掌握 string/number/boolean/array/object 类型
  2. 进阶:学习 interfacetype、泛型(Generic)
  3. 工程化:配置 tsconfig.json,集成到 React/Vue 项目
  4. 实战:用 TS 重写你以前的 JS 小项目(比如待办清单、天气查询)

免费资源推荐


结语

30 分钟过去了,你现在:

  • 装好了 TS 开发环境
  • 理解了“类型”的价值
  • 写了一个带类型检查的运营小工具
  • 甚至尝试了 GitHub API 和爬虫脚本!

TypeScript 不是门槛,而是拐杖。它不会让你变成“高级程序员”,但能让你少加班、少背锅、多睡两小时。

我当初转码时,就是因为 TS 帮我避免了无数线上事故,才顺利拿到第一份前端 offer。希望这篇指南,也能成为你编程路上的第一块垫脚石。

现在,打开你的 VS Code,新建一个 .ts 文件,敲下第一行代码吧!

console.log("Hello, TypeScript world!");

评论 0

最热最新
暂无评论
刘浩宇_云计算Lv.1
0
影响力
0
文章
0
粉丝