两小时快速入门 TypeScript 基础(一)工作流、基本类型、高级类型
一、什么是 TypeScript?
TypeScript 是一种由微软开发的开源编程语言,是 JavaScript 的超集,主要增加了静态类型和基于类的面向对象编程的特性。TypeScript 的存在旨在提高 JavaScript 的开发体验,特别在大型应用开发中更显得重要。
二、初始化 TypeScript 项目
在开始使用 TypeScript 之前,首先需要安装 Node.js,然后通过 npm 安装 TypeScript。
npm install -g typescript
接着创建一个新的目录并初始化项目:
mkdir my-typescript-project
cd my-typescript-project
npm init -y
然后可以通过以下命令生成 TypeScript 配置文件 tsconfig.json
:
tsc --init
这样我们就可以在此项目中使用 TypeScript 了。
三、基本类型
TypeScript 提供了多种基本数据类型,以下是最常用的几种:
- 布尔值 (boolean)
let isDone: boolean = false;
- 数字 (number)
let decimal: number = 6;
- 字符串 (string)
let color: string = "blue";
- 数组 (Array)
let list: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3]; // 泛型数组
- 元组 (Tuple)
let x: [string, number] = ["hello", 10];
- 枚举 (enum)
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
- 任意类型 (any)
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean
四、高级类型
在 TypeScript 中,高级类型有助于更精确地描述和约束变量的形态。
- 联合类型 (Union Types)
联合类型可以让变量同时支持多种类型。
function printId(id: number | string) {
console.log("Your ID is: " + id);
}
printId(101); // 输出: Your ID is: 101
printId("202"); // 输出: Your ID is: 202
- 交叉类型 (Intersection Types)
交叉类型可以将多个类型合并为一个类型,常用于合并不同接口。
interface Person {
name: string;
age: number;
}
interface Worker {
company: string;
}
type Employee = Person & Worker;
let employee: Employee = {
name: "John",
age: 30,
company: "ABC Corp"
}
- 类型保护 (Type Guards)
类型保护可以确保在不同的上下文中对特定类型的有效性检查。
function printAll(strs: string | string[]) {
if (typeof strs === "string") {
console.log(strs);
} else {
strs.forEach(s => console.log(s));
}
}
五、总结
以上是 TypeScript 基础知识的初步探讨。通过类型系统,我们可以在编写代码时及时发现潜在的错误,极大地提高了代码质量和可维护性。接下来的内容将继续深入 TypeScript 的其他特性(如接口、类等),希望大家能够保持好奇心,继续学习!