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

你可能听说过 JavaScript,它是网页开发中最常用的编程语言。但你知道吗?随着前端项目的越来越大和复杂,开发者们发现直接使用 JavaScript 有时候会有一些“坑”——比如变量类型不明确、代码结构混乱、错误不容易被发现等。
为了解决这些问题,TypeScript 就诞生了。你可以把 TypeScript 理解为 JavaScript 的超集 —— 意思就是它几乎包含了 JavaScript 所有的功能,同时还加上了更强大的“约束”和“提示”,帮助我们写出更清晰、更安全、更容易维护的代码。
它有什么特点?
- ✅ 带上了 类型系统(Type System),让你提前知道自己写的变量是数字还是字符串;
- ✅ 支持最新的 JavaScript 语法;
- ✅ 可以在主流编辑器中提供智能提示和错误检查;
- ✅ 最重要的是:完全兼容 JavaScript,你可以随时把
.js文件改成.ts,不需要重新写。
适合谁学?
这个教程特别适合:
- 🧑💻 完全没接触过编程的小白;
- 💻 已经熟悉 JavaScript,想升级到 TypeScript 的开发者;
- 🎨 后端/其他语言程序员,准备学习前端的小伙伴。
环境准备:搭建你的第一个 TypeScript 环境

要开始写 TypeScript,我们需要两个东西:
- Node.js(用来安装 TypeScript 和执行程序)
- TypeScript 编译工具(把我们写的 TS 转成 JS)
下面一步步教你如何配置!
Step 1:安装 Node.js
打开浏览器访问 https://nodejs.org,选择 LTS 版本下载并安装即可。
安装完成后,在终端或者命令行输入:
node -v
npm -v
如果看到类似输出,说明安装成功了 ✅
v18.17.1
9.6.7
Step 2:安装 TypeScript
接下来我们用 npm(Node.js 自带的一个软件管理器)来安装 TypeScript。
在终端输入:
npm install -g typescript
安装完成后检查版本:
tsc -v
你将看到如下的输出:
Version 5.2.2
这表示 TypeScript 编译器已经安装好了!
💡
tsc是 TypeScript Compiler 的缩写,意思是“编译器”。
Step 3:创建你的第一个 .ts 文件
我们新建一个项目文件夹,比如叫 my-ts-project,然后在里面创建一个文件叫 index.ts。
里面写下这行简单的代码:
console.log("Hello, TypeScript!");
保存后回到终端,进入该目录并运行:
tsc index.ts
你会发现多了一个叫 index.js 的文件。这就是编译后的 JavaScript 文件!
现在我们运行一下它看看结果:
node index.js
应该会输出:
Hello, TypeScript!
✅ 成功啦!你已经完成了 TypeScript 的环境搭建,并写出了你的第一个 TypeScript 程序!
核心概念:TypeScript 关键知识点速览
接下来我们要介绍一些 TypeSCript 最基础、最重要的几个概念。每个知识点都会配有简单易懂的解释和示例,新手不用怕看不懂。
1. 类型注解(Type Annotations)
这是 TypeScript 中最重要的特性之一。它的作用是告诉程序:我这个变量只能是什么类型的值。
示例 1:定义一个数字变量
let age: number = 25;
这段代码的意思是:变量 age 是一个数字,值是 25。
如果你尝试这样写:
age = "Tom"; // 错误!不能赋值字符串给一个数字类型的变量
TypeScript 会报错,告诉你不能混用类型。
示例 2:字符串和布尔值
let name: string = "Alice";
let isStudent: boolean = true;
💡 小贴士:如果不加类型注解,默认情况下 TypeScript 会根据赋值推断类型(叫做类型推断)。比如:
let num = 42; // 类型自动是 number
2. 函数的参数与返回值类型
函数也可以带上类型信息,提高安全性。
示例 1:定义一个带参数类型的函数
function sayHello(name: string): void {
console.log(`Hello, ${name}!`);
}
sayHello("John"); // 正确
sayHello(123); // 错误!参数必须是字符串
name: string表示参数必须是字符串;: void表示这个函数不会返回任何值(没有 return)。
示例 2:有返回值的函数
function add(a: number, b: number): number {
return a + b;
}
console.log(add(3, 5)); // 输出 8
console.log(add("a", 5)); // 报错!参数必须是数字
3. 数组类型
数组也要指定元素类型哦!
写法一:元素类型 + []
let numbers: number[] = [1, 2, 3];
numbers.push(4); // OK
numbers.push('5'); // ❌ 报错,不能添加字符串
写法二:泛型写法(进阶版)
let fruits: Array<string> = ['apple', 'banana'];
fruits.push('orange');
fruits.push(123); // ❌ 报错,只能添加字符串
💡 小建议:推荐第一种写法,更直观好记。
4. 联合类型(Union Types)
有时候一个变量可以是多种类型,比如一个函数可能接受数字或字符串。
这个时候就可以用联合类型,写法是用竖线 | 分隔多个类型:
let id: number | string;
id = 123; // OK
id = "abc"; // OK
id = true; // ❌ 不行,不是 number 或 string
5. 对象类型(Object Types)
对象类型可以帮助我们定义一个对象有哪些属性,以及每个属性的类型。
示例 1:最简单的对象
let person: { name: string; age: number } = {
name: 'Tom',
age: 30
};
你也可以分开写接口(interface),我们会在高级部分学到。
6. any 和 unknown 类型(慎用)
这两个是用来处理不确定类型的值的,但它们也有一些区别:
✅ any(可以做任何事情)
let value: any = "hello";
value = 123;
value = true;
虽然很灵活,但是也失去了类型检查,建议尽量少用。
✅ unknown(需要先判断再操作)
let input: unknown = "hi";
if (typeof input === "string") {
console.log(input.toUpperCase()); // 这样才安全
}
unknown 更安全一些,推荐优先使用。
7. 类型别名(Type Aliases)
我们可以给一个类型起个别名,方便重复使用。
type ID = number | string;
let userId: ID = 123;
let userName: ID = 'user123';
是不是比每次都写 number | string 方便多了?
✨ 新手常见问题解答 Q&A
Q1:能不能不写类型?
当然可以!TypeScript 默认会尝试自己去“猜”类型(叫类型推断),比如:
let count = 10; // 类型是 number
count = "ten"; // 报错!因为它已经是 number 类型了
所以即使你不写类型,TypeScript 也会帮你限制类型。
Q2:为什么我的 VSCode 没有红色波浪线提醒错误?
请确保:
- 安装了 TypeScript 插件;
- 设置里开启了 “检查所有 JS 文件”(File > Preferences > Settings 中搜索
checkJs并勾选);
实战项目:做一个“温度转换器”
接下来我们来做个小项目,加深理解。我们要实现的功能是:让用户输入摄氏度,程序自动计算出华氏度(Fahrenheit)。
Step 1:创建项目目录和文件
mkdir temperature-converter
cd temperature-converter
touch main.ts
Step 2:编写功能逻辑
在 main.ts 中写入以下代码:
// 温度转换函数:摄氏度转华氏度
function celsiusToFahrenheit(celsius: number): number {
return (celsius * 9 / 5) + 32;
}
// 测试一下
let tempC: number = 25;
let tempF: number = celsiusToFahrenheit(tempC);
console.log(`${tempC}°C = ${tempF}°F`);
Step 3:编译并运行
在终端中执行:
tsc main.ts
node main.js
你会看到输出:
25°C = 77°F
✅ 恭喜!你已经完成了一个小型 TypeScript 应用了!
常见问题:新手常遇到的问题与解决办法

问题 1:VSCode 显示 “找不到模块” 或 “无法找到名称 ‘require’”
👉 解决方案:
你可能是在使用 import 或 require,需要设置 TypeScript 的模块系统。
创建一个 tsconfig.json 配置文件:
tsc --build --clean
tsc --watch
等等,其实最简单的方法是手动创建一个配置文件:
新建一个文件 tsconfig.json,内容如下:
{
"compilerOptions": {
"module": "commonjs",
"target": "es2016",
"strict": true,
"esModuleInterop": true,
"outDir": "./dist"
},
"include": ["./**/*"]
}
⚠️ 如果你不理解这些选项没关系,先照着写就行,后面我们再详细讲。
问题 2:TypeScript 没有报错,但运行的时候报错了?
👉 原因:TS 只能保证编译时的类型正确,运行时错误可能是由于外部数据(例如用户输入)导致的。
解决方案:
- 使用运行时验证;
- 利用第三方库如 Zod 来增强校验;
- 多加测试!
学习建议:下一步怎么走?
恭喜你坚持看完这篇教程,现在你已经掌握了 TypeScript 的基础知识!接下来你可以继续深入以下方向:
① 面向对象编程(OOP) & 接口(Interfaces)
学习如何用类和接口组织大型项目。
② 泛型(Generics)
学习如何写出可以适应不同类型的数据函数。
③ 装饰器(Decorators)和模块(Modules)
这是构建大型应用的重要基础。
④ 结合 React/Vue/Angular 学习
大多数现代框架都支持 TypeScript,结合学习会让你更进一步!
总结:今天我们学到了什么?
在这篇教程中,我们一起完成了:
- 认识了 TypeScript 是什么;
- 搞定了开发环境配置;
- 学会了基本的数据类型、函数、对象、联合类型等;
- 完成了一个小实战项目;
- 解决了一些常见的问题;
- 规划了下一步的学习路线。
💡 鼓励语
TypeScript 看起来好像有点难,但它其实就是为了让我们写代码时更安心、更高效、更容易合作而存在的。希望你能继续保持好奇心,不怕试错,不断练习!
🎉 加油,未来的 TypeScriper!欢迎加入前端的世界!
如果你喜欢这篇文章,请点个赞或者转发支持一下吧~

评论 0