TypeScript快速入门:30分钟上手指南
开篇:TypeScript是什么,能用来做什么?

TypeScript 是 JavaScript 的超集,这意味着它可以写所有的 JavaScript 代码,同时增加了 静态类型检查 这一强大功能。简单来说,TypeScript 就是为了解决 JavaScript 在大型项目中难以维护、易出错的问题而生的。它允许开发者在编写代码时指定变量的类型(比如字符串、数字、布尔值等),这样可以避免很多常见的错误,还能提升代码的可读性和开发效率。
它被广泛应用于前端和后端开发中,尤其是配合现代框架如 Angular、React、Vue 等使用时效果更佳。如果你已经熟悉了 JavaScript,那么 TypeScript 只是你迈出专业开发第一步的桥梁;如果你是零基础的新手,也不要担心——这篇文章就是为你准备的!
我们将在接下来的30分钟内一步步带你安装环境、学习基本语法、动手实践一个简单的小项目,并解答你可能会遇到的一些疑问。让我们开始吧!
环境准备:安装TypeScript环境

第一步:安装Node.js
我们要运行 TypeScript 代码,首先需要安装 Node.js。Node.js 不仅是一个 JavaScript 运行环境,还提供了一个强大的包管理器 npm,可以帮助我们安装各种工具和库。
前往 Node.js官网 下载并安装 LTS(长期支持版本)即可。安装完成之后,在命令行工具中输入以下命令来验证是否安装成功:
node -v
npm -v
如果能看到类似 v18.x.x 和 9.x.x 的输出,则表示安装成功。
第二步:安装TypeScript编译器
接着我们需要安装 TypeScript 编译器(也叫 tsc)。打开命令行,输入以下命令:
npm install -g typescript
等待安装完成后,输入:
tsc --version
你会看到 TypeScript 的版本号,说明安装成功。
第三步:创建工作目录并初始化项目
新建一个文件夹作为我们的练习目录,例如 ts-tutorial,然后进入这个文件夹执行:
npm init -y
这条命令会生成一个默认的 package.json 文件,用于管理项目的依赖项。
接下来,我们可以开始编写第一个 TypeScript 文件。
第四步:配置 TypeScript 环境
为了让 TypeScript 更好地工作,我们需要创建一个 tsconfig.json 配置文件。在当前项目根目录下执行以下命令:
tsc --init
这将自动生成一个 tsconfig.json 文件,里面包含了默认的 TypeScript 编译配置。如果你对配置项暂时不太理解也没关系,后面我们会用到其中一些重要的选项。
第五步:测试一下环境是否正常
我们在项目根目录下创建一个新文件,取名 index.ts,并在里面写上一段简单的代码:
console.log("Hello, TypeScript!");
保存后回到命令行,运行编译命令:
tsc index.ts
你会发现项目目录中多了一个新的文件 index.js,这就是 TypeScript 被编译成标准 JavaScript 后的结果。你可以用以下命令运行它:
node index.js
你应该看到输出:
Hello, TypeScript!
恭喜!你的 TypeScript 环境已经搭建完成了。现在可以开始正式学习了!
核心概念:初学者必须掌握的TypeScript基础知识
要真正开始使用 TypeScript,我们必须先了解几个基础但非常关键的概念。为了便于理解,我们将逐一介绍,并配合示例帮助你建立清晰的认识。
变量与类型声明
在 JavaScript 中,我们可以直接赋值给变量而不关心它的类型。但在 TypeScript 中,我们强烈推荐提前指定类型。
let name: string = "Alice";
let age: number = 25;
let isStudent: boolean = true;
name = 123; // ❌ 报错:不能把数字赋值给字符串变量
可以看到,TypeScript 提供了 静态类型检查,如果赋值不符合类型,会报错提醒。
💡 小技巧:如果你不手动指定类型,TypeScript 也能根据赋值自动推断类型。
数组类型
数组也需要明确其元素类型,否则 TypeScript 会不知道数组里应该放什么:
let fruits: string[] = ["apple", "banana"];
let scores: number[] = [90, 85, 95];
scores.push("A"); // ❌ 报错:不能向数字数组中添加字符串
另一种写法也可以使用泛型形式 Array<T>:
let numbers: Array<number> = [1, 2, 3];
这两种方式效果一样,选择你喜欢的方式即可。
函数定义
函数是我们组织逻辑的重要单元,TypeScript 对函数参数和返回值的类型也有要求:
function add(a: number, b: number): number {
return a + b;
}
add(10, 20); // ✅ 正确
add("10", 20); // ❌ 报错:参数类型不对
你还可以指定函数没有返回值的情况:
function sayHello(name: string): void {
console.log("Hello, " + name);
}
类型推断
有时候我们不想每次都手动写上类型,TypeScript 会根据赋值的内容进行类型推断:
let message = "Hello world"; // 推断为 string 类型
message = 100; // ❌ 报错:只能是 string 类型
这种情况下不需要显式标注类型,TypeScript 自己就知道该怎么做。
联合类型(Union Types)
有时候,一个变量可能是几种类型的其中之一,可以用联合类型 | 来表示:
let id: number | string;
id = 123; // ✅ 正确
id = "abc123"; // ✅ 正确
id = true; // ❌ 报错
这种方式非常适合处理接口数据或者动态值。
any 和 unknown 类型
any:表示任意类型,完全跳过类型检查。不推荐使用,因为它会让 TypeScript 失去类型安全的优势。unknown:也是一种通用类型,但比any安全得多。只有在确认类型之后才能操作它。
let value: any = "hello";
value = 123; // ✅ 允许任何类型,但可能埋下 bug 隐患
let data: unknown = "test";
if (typeof data === "string") {
console.log(data.toUpperCase()); // ✅ 类型确认后再操作
}
建议优先使用 unknown 而非 any,以保持安全性。
null 与 undefined
在 TypeScript 中,null 和 undefined 是两种独立的类型,通常用于处理未赋值或空值的情况:
let username: string | null = null;
if (username) {
console.log(username.length); // ✅ 如果有值才访问属性
} else {
console.log("用户名为空");
}
通过联合类型 string | null,我们可以更安全地处理可能为空的情况。
实战项目:做一个“猜数字”小游戏
学完基础之后,我们来动手实现一个有趣的小游戏——“猜数字”。这个项目虽然简单,但却能让你体验完整开发流程,并巩固刚刚学到的 TypeScript 基础知识。
功能说明
我们要做的是这样一个控制台程序:
- 系统随机生成一个 1~100 之间的整数;
- 用户每次输入一个数字进行猜测;
- 程序告诉用户猜大了还是小了;
- 如果猜中则提示成功,并结束游戏。
第一步:创建项目结构
在你的项目目录中新建一个 guess-number.ts 文件,用于存放游戏代码。
第二步:编写核心逻辑
以下是完整的 TypeScript 实现:
// 导入 Node.js 内置模块 readline,用于处理用户输入
import * as readline from 'readline';
// 创建 readline 接口实例
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 生成一个1~100之间的随机整数
const targetNumber: number = Math.floor(Math.random() * 100) + 1;
console.log("欢迎来到猜数字游戏!");
console.log("请猜一个 1 到 100 之间的数字");
// 处理用户输入的函数
function guessNumber(): void {
rl.question("请输入你的猜测: ", (input: string) => {
const userGuess: number = parseInt(input);
if (isNaN(userGuess)) {
console.log("请输入有效的数字!");
guessNumber();
return;
}
if (userGuess < targetNumber) {
console.log("太小了!再试一次吧!");
guessNumber();
} else if (userGuess > targetNumber) {
console.log("太大了!再试一次吧!");
guessNumber();
} else {
console.log("恭喜你猜对了!");
rl.close(); // 关闭输入流
}
});
}
// 启动游戏
guessNumber();

第三步:运行并测试
别忘了先安装所需的模块:
npm install @types/node --save-dev
然后进行编译和运行:
tsc guess-number.ts
node guess-number.js
你现在就可以玩这个游戏啦!
常见问题解答
我写的代码报错了,怎么办?
TypeScript 最大的优势之一就是提供了详细的错误信息。遇到报错时,仔细阅读控制台提示的错误信息,通常都能告诉你哪里出了问题。常见的错误包括:
- 类型不匹配
- 变量未定义
- 方法调用错误
尝试根据提示修改,实在不行可以拷贝报错信息在网上搜索,大多数问题都有现成答案。
我不想手动写类型,有没有办法?
当然可以。正如我们前面介绍的那样,TypeScript 支持 类型推断,所以你在很多情况下不需要显式标注类型,让 TypeScript 自己判断就可以了。比如:
let age = 25; // 类型自动推断为 number
但是记住,有些复杂情况最好还是主动写上类型,这样更容易排查错误。
为什么我用了 any 就不会报错了?
没错,因为 any 是 TypeScirpt 中最“宽松”的类型,它意味着跳过所有类型检查。不过,这样做其实就失去了 TypeScript 的意义。我们鼓励尽量少用 any,而是使用 unknown 或者精确的类型标注。
学习建议:下一步该怎么继续学?
如果你顺利完成了本次入门教程,那说明你已经打下了良好的基础!接下来,你可以沿着以下几个方向继续深入:
1. 学习更高级的类型系统
- 元组(Tuple)
- 枚举(Enum)
- 接口(Interface)
- 泛型(Generics)
这些概念能帮助你写出更健壮、可复用的代码。
2. 结合现代前端框架学习
TypeScript 是 React、Vue、Angular 等主流框架推荐的语言。你可以选择其中一个框架继续深入学习,比如:
- 使用 TypeScript + React 构建组件化应用
- 使用 Vue 3 Composition API + TypeScript
3. 使用TypeScript编写Node.js后端
你不仅可以使用 TypeScript 编写前端代码,还可以用它来开发后端服务。尝试构建一个小API,比如用户登录系统、博客系统等,都是不错的实践项目。
总结

在这短短的30分钟里,我们从零开始安装了 TypeScript 环境,学习了变量类型、数组、函数、联合类型、any/unknown/null/undefined 等基础概念,并完成了一个有趣的小项目:“猜数字”游戏。在这个过程中,你也了解到了常见问题以及后续学习的方向。
不要急着一次掌握所有内容,坚持每天写一点代码,不断实践和思考才是成长的关键。
祝你学习愉快!如果你喜欢这样的教程,记得分享给更多朋友一起学习 😊

评论 0