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

程序员的日常信号
2025-06-24 13:09
阅读 341

开篇:TypeScript 是什么?它能做什么?

开篇:TypeScript 是什么?它能做什么?

你可能听说过 JavaScript,它是网页开发中最常用的编程语言。但你知道吗?随着前端项目的越来越大和复杂,开发者们发现直接使用 JavaScript 有时候会有一些“坑”——比如变量类型不明确、代码结构混乱、错误不容易被发现等。

为了解决这些问题,TypeScript 就诞生了。你可以把 TypeScript 理解为 JavaScript 的超集 —— 意思就是它几乎包含了 JavaScript 所有的功能,同时还加上了更强大的“约束”和“提示”,帮助我们写出更清晰、更安全、更容易维护的代码。

它有什么特点?

  • ✅ 带上了 类型系统(Type System),让你提前知道自己写的变量是数字还是字符串;
  • ✅ 支持最新的 JavaScript 语法;
  • ✅ 可以在主流编辑器中提供智能提示和错误检查;
  • ✅ 最重要的是:完全兼容 JavaScript,你可以随时把 .js 文件改成 .ts,不需要重新写。

适合谁学?

这个教程特别适合:

  • 🧑‍💻 完全没接触过编程的小白;
  • 💻 已经熟悉 JavaScript,想升级到 TypeScript 的开发者;
  • 🎨 后端/其他语言程序员,准备学习前端的小伙伴。

环境准备:搭建你的第一个 TypeScript 环境

环境准备:搭建你的第一个 TypeScript 环境

要开始写 TypeScript,我们需要两个东西:

  1. Node.js(用来安装 TypeScript 和执行程序)
  2. 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

问题 1:VSCode 显示 “找不到模块” 或 “无法找到名称 ‘require’”

👉 解决方案:

你可能是在使用 importrequire,需要设置 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

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝