为什么越来越多的项目选择 TypeScript?

71 阅读3分钟

为什么越来越多的项目选择 TypeScript?

你是否曾经在 JavaScript 项目中遇到过这样的问题,当调用一个函数时,不确定参数该传什么类型?亦或者修改别人代码时,不知道某个变量到底是字符串还是数组?又或者程序运行时报错 Cannot read property 'xxx' of undefined,却很难快速定位?

如果你点头了,那么 TypeScript(简称 TS)正是为你而生的工具。本文将带你轻松“初识 TypeScript”,了解它是什么、为什么需要它,以及如何迈出第一步。

一、TypeScript 是什么?

简单来说,TypeScript 是 JavaScript 的超集。这意味着:

✅ 所有合法的 JavaScript 代码,都是合法的 TypeScript 代码。
✅ TypeScript 在 JavaScript 的基础上,添加了静态类型系统

你可以把它理解为:JavaScript + 类型系统 + 更强的开发工具支持

官方定义:TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.

二、为什么需要 TypeScript?

JavaScript 是一门弱类型语言,非常灵活,但也容易出错。TypeScript 的出现,正是为了解决大型项目中代码的可维护性和可读性问题。

例如:

在 JavaScript 中:

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

greet(123); // 运行时报错:name.toUpperCase is not a function

若传递的name是一个数字,那么这个错误只有在运行时才会暴露。

而在 TypeScript 中:

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

greet(123); // 编译阶段就报错:类型 'number' 不能赋值给 'string'

TypeScript 在你写代码时就提醒你错误,大大减少 bug 的产生。

三、TypeScript 的核心概念:类型

TypeScript 最核心的功能就是“类型注解”(Type Annotation)。我们可以通过 : 类型 的方式为变量、函数参数等指定类型。

常见类型示例:

let age: number = 25;
let name: string = "Alice";
let isActive: boolean = true;
let scores: number[] = [90, 85, 95];

// 函数参数和返回值也可以标注类型
function add(a: number, b: number): number {
  return a + b;
}

小提示:TypeScript 具有类型推断能力。如果你赋值时写了 let age = 25;,TS 会自动推断 agenumber 类型,无需手动标注。

四、如何运行 TypeScript?

TypeScript 不能直接在浏览器中运行,需要先编译成 JavaScript。

  1. 安装 TypeScript
npm install -g typescript
  1. 编写 .ts 文件

创建 hello.ts

function greet(name: string): string {
  return `Hello, ${name}!`;
}

console.log(greet("TypeScript"));
  1. 编译成 JavaScript
tsc hello.ts

会生成 hello.js 文件,内容是纯 JavaScript,可在浏览器或 Node.js 中运行。

五、TypeScript 的优势总结

优势说明
类型安全编译时检查类型错误,减少运行时 bug
更好的开发体验IDE 智能提示、自动补全、跳转定义
易于重构类型系统让代码结构更清晰,修改更安全
逐步采用可在现有 JS 项目中逐步引入 TS

六、如何开始学习?

  1. .js 改为 .ts:把项目文件后缀改一下,开始添加类型。
  2. 使用 any 过渡:初期可用 any 类型绕过类型检查,逐步替换。
  3. 学习基础类型stringnumberbooleanarrayobjectinterfaceenum 等。
  4. 结合框架使用:React + TS、Vue + TS 是当前主流选择。

结语

TypeScript 并不是要取代 JavaScript,而是Make JavaScript Great Again、更可靠。它像是一位“代码助手”,在你写代码时默默帮你检查错误、提供提示。